|
Порядок отображения 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 |
|
|
start [/forum/topic.php?fid=46&msg=37864677&tid=1711890]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 507ms |
0 / 0 |