|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Пользуюсь MS SQL Server 2008R2 DeveloperEd. Итак есть 2 базы данных. Для одной определен Collation (DB_1) Код: sql 1.
Для другой Collation (DB_2) Код: sql 1.
В обеих есть одинаковая табличка, с одним полем типа (tbl_time) Код: sql 1.
В которое записываются даты в формате ДД.ММ.ГГГГ Например передаем дату: 01.06.2012 Тогда в таблице DB_1.dbo.tbl_time Код: sql 1.
В таблице DB_2.dbo.tbl_time Код: sql 1.
Соответственно запросы Код: sql 1. 2. 3.
Выдают разные резалты - 6 и 1 соответсвенно. Помогите разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:06 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanСоответственно запросы Код: sql 1. 2. 3.
Выдают разные резалты - 6 и 1 соответсвенно. Если оба поля именно типа datetime, то эти запросы выдают одинаковый результат ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:10 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, я читал эту мини статью, но хотел разобраться подробнее что и к чему... плюс возник вопрос, могу ли я сделать такой апдейт Код: sql 1. 2.
Потому что мне однозначно нужно перейти к такому отображению даты И даже если я делаю Код: sql 1.
Все равно выдает пустой результирующий набор. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:20 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Отображением даты занимается клиентское приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:24 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Glory, Код: sql 1. 2.
MonthTime601.06.2012 Код: sql 1. 2.
MonthTime106.01.2012 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:31 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zanderman, у вас содержатся разные значения (1 июня и 6 января), поэтому и разный результат у DATEPART ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:33 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
У вас 2 разные даты. Потому что вы записали в таблицу 2 разные даты. Потому что вместо параметров используете символьные константы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:33 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Shakill, Да, но передавалось изначально в оба поля значение 01.06.2012. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:34 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zanderman, Еще есть такой нюанс для DB_1, где якобы дата отобразилась правильно. Чтобы ее вытянуть я пишу такой запрос: Код: plsql 1. 2.
Хотя в базе дата отображается, как Код: sql 1.
Потому я совсем запутался. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:38 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanShakill, Да, но передавалось изначально в оба поля значение 01.06.2012. как передавалось? и учтите, что настройки сервера влияют на то, как интерпретируется текстовая запись, если передавали текстом ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:39 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Shakill, даты попадали с помощью выгрузки из 1С в формате ДД.ММ.ГГ ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:40 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanShakill, даты попадали с помощью выгрузки из 1С в формате ДД.ММ.ГГ ну либо в одну из баз даты попали неправильно сконвертированные, либо вы думаете что даты должны быть одинаковыми у тех записей, где они на самом деле должны быть разные ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:47 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Это отображение на клиенте, с разными настройками ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:50 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Anatoly Podgoretsky, Можно подробней, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:54 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Anatoly Podgoretsky, ТС утверждает, что у неких двух записей из двух одинаковых таблиц должна стоять одинаковая дата, и, следовательно, одинаковое значение DATEPART(mm, ..), а оно разное. тут дело не в отображении. либо ТС ошибся в выборе самих записей для сопоставления, либо данные повреждены ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:57 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Если это в одной странице и данные с одного источника, то конечно у автора где то ошибка при записи данных. Например изменение настроек между записями, или разные запросы ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:03 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Shakill, Именно! Надеялся, что дело в Collation баз. Или есть четкие правила отображения и хранения дат... Ответьте мне на такой вопрос, если мне передали дату 01.06.2012 в поле db_1.tbl_time.time(не важно какое) то как бы не записалась эта дата в БД, результатом запроса Код: sql 1.
будет 6? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:08 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanИ даже если я делаю Код: sql 1.
Все равно выдает пустой результирующий набор.'20120601' - это 112-й формат. CONVERT необязателен - этот формат сервер умеет конвертировать по-умолчанию. А вот писать '01.06.2012' - неграмотно, ибо зависит от параметров на сервере. Надо CONVERT(DATETIME,'01.06.2012',104) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:09 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanShakill, Именно! Надеялся, что дело в Collation баз. Или есть четкие правила отображения и хранения дат... Ответьте мне на такой вопрос, если мне передали дату 01.06.2012 в поле db_1.tbl_time.time(не важно какое) то как бы не записалась эта дата в БД, результатом запроса Код: sql 1.
будет 6?Передали ведь не дату, а строку? Значит, зависит от интерпретации этой строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:11 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
iap, ну учитывая, что у этой строки тип Код: sql 1.
То наверное это все таки дата... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:13 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
iapzandermanИ даже если я делаю Код: sql 1.
Все равно выдает пустой результирующий набор.'20120601' - это 112-й формат. CONVERT необязателен - этот формат сервер умеет конвертировать по-умолчанию. А вот писать '01.06.2012' - неграмотно, ибо зависит от параметров на сервере. Надо CONVERT(DATETIME,'01.06.2012',104) Конечно! Согласен с Вами. Я немогу понять одного почему, чтобы получить одну и ту же дату в одном случае я пишу запрос Код: sql 1.
а в другом Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:21 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanЯ немогу понять одного почему, чтобы получить одну и ту же дату в одном случае я пишу запрос Код: sql 1.
а в другом Код: sql 1.
вы ошибаетесь, в результате этих преобразований получатся разные даты. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:23 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanОтветьте мне на такой вопрос, если мне передали дату 01.06.2012 в поле db_1.tbl_time.time(не важно какое) то как бы не записалась эта дата в БД, результатом запроса Код: sql 1.
будет 6? если ваш запрос пытается вставить строку '01.06.2012' в поле datetime, то она будет приведена согласно настройкам сервера к типу datetime или как 1 июня, или как 6 января. в зависимости от того, какое в итоге значение попало в базу, ваш select datepart(mm, ..) будет возвращать 6 или 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:36 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Shakill, Вообщем ребят, я конечно еще то нубло, но вот мой вывод, данное поле с датой попадает в SQL из 1С. В 1С это просто строка, которая записана по определенному правилу. Далее идет подключение 1С к SQL и тут видимо есть такое понятие,как формат даты по-умолчанию, в данном случае это был формат MM.dd.yyyy, в таком виде дата и приходила уже в мою SQL базу и отображалась криво. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:38 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Что скажете по этому поводу? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:58 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Скажем, что надо выгружать в формате, который не предусматривает двоякого толкования даты. Или выставлять правильные настройке коннекта при загрузке. В общем, делать то, что написано в статье FAQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:02 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanShakill, Вообщем ребят, я конечно еще то нубло, но вот мой вывод, данное поле с датой попадает в SQL из 1С. В 1С это просто строка, которая записана по определенному правилу. Далее идет подключение 1С к SQL и тут видимо есть такое понятие,как формат даты по-умолчанию, в данном случае это был формат MM.dd.yyyy, в таком виде дата и приходила уже в мою SQL базу и отображалась криво. Запрос должен передавать set команду нужного формата, при том все запросы, а не отдельный, возможно какой то не передает или передает неверную строку, тогда тоже будет наблюдаться подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:13 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanДалее идет подключение 1С к SQL и тут видимо есть такое понятие,как формат даты по-умолчанию, в данном случае это был формат MM.dd.yyyy, в таком виде дата и приходила уже в мою SQL базу и отображалась криво. Нет никакого умолчания, у каждого пользователя может быть своя настройка формата представления даты ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:14 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Гавриленко Сергей АлексеевичИли выставлять правильные настройке коннекта при загрузке. Именно это я и описывал в предидущем сообщении. Я правильно понимаю что DATEFORMAT есть дефолтный, но мы можем задать его для текущего коннекта на свой манер? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:16 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanДалее идет подключение 1С к SQL и тут видимо есть такое понятие,как формат даты по-умолчанию, в данном случае это был формат MM.dd.yyyy, в таком виде дата и приходила уже в мою SQL базу и отображалась криво. В том то и дело, что нет у вас никаких дат. А есть символьные строки. Которые конвертируются к дате. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:17 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Anatoly PodgoretskyzandermanДалее идет подключение 1С к SQL и тут видимо есть такое понятие,как формат даты по-умолчанию, в данном случае это был формат MM.dd.yyyy, в таком виде дата и приходила уже в мою SQL базу и отображалась криво. Нет никакого умолчания, у каждого пользователя может быть своя настройка формата представления даты Вопрос снят. А почему нет понятия по-умолчанию, потому что дата она и в Африке дата? и мы можем записать ее как угодно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:18 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
По тому что этот параметр задается явно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:19 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanAnatoly Podgoretskyпропущено... Нет никакого умолчания, у каждого пользователя может быть своя настройка формата представления даты Вопрос снят. А почему нет понятия по-умолчанию, потому что дата она и в Африке дата? и мы можем записать ее как угодно? если вы про умолчания для set dateformat в зависимости от установленного языка, то их можно посмотреть через sp_helplanguage обратите внимание, эта настройка влияет только на ковертацию из строки в дату, но не влияет на отображение дат ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:23 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanА почему нет понятия по-умолчанию, потому что дата она и в Африке дата? и мы можем записать ее как угодно?Дата - это восемь байт в типе данных datetime. А у вас не дата, а строковый литерал, который вы хотите к этой дате отконвертить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:25 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, я все понял,спасибо за разъяснения. Я уже как раз говорил про дату в скуле, когда эти 8 байт лежат в скуле с типом datetime. DATEFORMAT-ом мы можем, как угодно менять формат этих 8 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:53 |
|
Порядок отображения D,M,Y в дате
|
|||
---|---|---|---|
#18+
zandermanDATEFORMAT-ом мы можем, как угодно менять формат этих 8 байт. Да не можете вы менять формат. Вы можете менять правила конвертирования символьных строк в дату. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:55 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1711890]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 189ms |
0 / 0 |