Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Формат даты  [new]
tester 009
Guest
Подскажите пожалуйста, можно ли настроить формат даты целиком для всего сервера или ещё лучше для базы ? В связи с некоторыми долгими для объяснения причинами нужно, что бы дата всегда ожидалась сервером в формате YYYY-MM-DD HH:MM:SS.MMM.
17 май 06, 10:41    [2672723]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10896

Если пишете клиентское приложение, то используйте параметры, и не будет проблем с датами.


Posted via ActualForum NNTP Server 1.3

17 май 06, 10:43    [2672730]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23903
https://www.sql.ru/faq/faq_topic.aspx?fid=109
17 май 06, 10:48    [2672763]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
RENaissance

Если пишете клиентское приложение, то используйте параметры, и не будет проблем с датами.


Posted via ActualForum NNTP Server 1.3


Это всё понятно, но вопрос был какименно измент настройки сервера и не только на уровне сессиии ессесвенно
17 май 06, 11:02    [2672857]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
tpg
https://www.sql.ru/faq/faq_topic.aspx?fid=109


спасибо, sp_defaultlanguage видимо то что надо. Не подскажете, как узнать какие форматы дат для каких языков что бы выбрать подходящитй, наверно russian точно пойдёт ?
17 май 06, 11:06    [2672890]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23903
Передавайте дату строкой с форматом, указанным в факе и будет вам щастье.
17 май 06, 11:10    [2672919]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
tpg
Передавайте дату строкой с форматом, указанным в факе и будет вам щастье.


нет, я уже обозначит задачу. код менять нельзя, нужно только настройками сервера. Объяснять почему долго
17 май 06, 11:14    [2672958]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
tester 009
tpg
Передавайте дату строкой с форматом, указанным в факе и будет вам щастье.


нет, я уже обозначит задачу. код менять нельзя, нужно только настройками сервера. Объяснять почему долго

Если вы работаете с типом datetime именно как с типом datetime как на сервере так и на клиенте, то вообще не должно быть никаких проблем и дополнительного конфигурирования.

А если вы конвертите туда-сюда символьные строки, то все уже сказано в приведенном линке
17 май 06, 11:17    [2672993]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
Glory
tester 009
tpg
Передавайте дату строкой с форматом, указанным в факе и будет вам щастье.


нет, я уже обозначит задачу. код менять нельзя, нужно только настройками сервера. Объяснять почему долго

Если вы работаете с типом datetime именно как с типом datetime как на сервере так и на клиенте, то вообще не должно быть никаких проблем и дополнительного конфигурирования.

А если вы конвертите туда-сюда символьные строки, то все уже сказано в приведенном линке


рабюота идёт со строками. лин полезный, но наблюдается странная вещь.

язык us-english с format = mdy

запрос с датой типа '2005-5-15' работает
'15/5/2005' падает, '5/15/2005' работает :)

задаём явно set dataforma mdy
'2005-5-15' начинает падать :)

Что но не очень понятно как настройки дефолтвого языка влияют...
17 май 06, 11:24    [2673049]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
Что но не очень понятно как настройки дефолтвого языка влияют...
Вы в курсе напремер того, что ODBC драйвера могут менять DATEFORMAT/LANGUAGE при установлении соединения ?
И само понятие default означает "использовать так если не указали использовать по другому"
17 май 06, 11:27    [2673071]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
Glory
Что но не очень понятно как настройки дефолтвого языка влияют...
Вы в курсе напремер того, что ODBC драйвера могут менять DATEFORMAT/LANGUAGE при установлении соединения ?
И само понятие default означает "использовать так если не указали использовать по другому"


экспериментирую в консоли query analyzer
17 май 06, 11:34    [2673125]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
tester 009
Glory
Что но не очень понятно как настройки дефолтвого языка влияют...
Вы в курсе напремер того, что ODBC драйвера могут менять DATEFORMAT/LANGUAGE при установлении соединения ?
И само понятие default означает "использовать так если не указали использовать по другому"


экспериментирую в консоли query analyzer

И что ? QA как и любое приложение использует стандартные драйвера для коннекта. Плюс имеет интерфейс для сохранения опций коннекта и соответственно автоматического их восстановления при открытии нового коннекта.
17 май 06, 11:37    [2673146]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
test 009
Guest
Glory
tester 009
Glory
Что но не очень понятно как настройки дефолтвого языка влияют...
Вы в курсе напремер того, что ODBC драйвера могут менять DATEFORMAT/LANGUAGE при установлении соединения ?
И само понятие default означает "использовать так если не указали использовать по другому"


экспериментирую в консоли query analyzer

И что ? QA как и любое приложение использует стандартные драйвера для коннекта. Плюс имеет интерфейс для сохранения опций коннекта и соответственно автоматического их восстановления при открытии нового коннекта.


хорошо, и как можно посмотрить какие настройки даты в текущей сессии?
17 май 06, 11:42    [2673198]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
DBCC USEROPTIONS
17 май 06, 11:43    [2673202]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
Glory
DBCC USEROPTIONS


пишет dateformat mdy, что соответсвует us-english :) при этом наблюдается то что дата
'2005-5-15' работает :)
при этом
'15/5/2005' падает :)

Как и было указано выше.
17 май 06, 11:50    [2673258]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
ндя, после
set dateformat dmy
'2006-5-15 12:12:1.01'
начала падать, что-то совсем странное :) получается что интерпретация формата
XXXX-XX-XX обратна интерпретации XX/XX/XXXX
17 май 06, 11:55    [2673302]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
tester 009
Glory
DBCC USEROPTIONS


пишет dateformat mdy, что соответсвует us-english :) при этом наблюдается то что дата
'2005-5-15' работает :)
при этом
'15/5/2005' падает :)

Как и было указано выше.


'2005-5-15' это универсальный формат который сервер поймет всегда, независмо от dateformat. Об этом написано в ссылке и несколько раз повторено в данном топике

Насчет '15/5/2005' при dateformat mdy у меня лично все работает. Либо вы что-то неправильно делаете, либо не там смотрите
17 май 06, 11:56    [2673319]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
tester 009
Glory
tester 009
tpg
Передавайте дату строкой с форматом, указанным в факе и будет вам щастье.


нет, я уже обозначит задачу. код менять нельзя, нужно только настройками сервера. Объяснять почему долго

Если вы работаете с типом datetime именно как с типом datetime как на сервере так и на клиенте, то вообще не должно быть никаких проблем и дополнительного конфигурирования.

А если вы конвертите туда-сюда символьные строки, то все уже сказано в приведенном линке


рабюота идёт со строками. лин полезный, но наблюдается странная вещь.

язык us-english с format = mdy

запрос с датой типа '2005-5-15' работает
'15/5/2005' падает, '5/15/2005' работает :)

задаём явно set dataforma mdy
'2005-5-15' начинает падать :)

Что но не очень понятно как настройки дефолтвого языка влияют...

В первом сообщении Вы пишете про формат YYYY-MM-DD HH:MM:SS.MMM, а сейчас написали '2005-5-15'. По-Вашему, это одно и тоже?
Кроме тех форматов, которые Вам уже посоветовали в этой теме, можно ещё предложить ISO 8601 Format (yyyy-mm-ddThh:mm:ss[.mmm]). Особенность этого формата (как и YYYYMMDD hh:mm:ss) в том, что дата будет восприниматься сервером независимо от его настроек.
17 май 06, 11:57    [2673333]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
В первом сообщении Вы пишете про формат YYYY-MM-DD HH:MM:SS.MMM, а сейчас написали '2005-5-15'. По-Вашему, это одно и тоже?
Да, это одно и тоже
17 май 06, 12:03    [2673389]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
Glory
tester 009
[quot Glory]DBCC USEROPTIONS


пишет dateformat mdy, что соответсвует us-english :) при этом наблюдается то что дата
'2005-5-15' работает :)
при этом
'15/5/2005' падает :)

Как и было указано выше.


'2005-5-15' это универсальный формат который сервер поймет всегда, независмо от dateformat. Об этом написано в ссылке и несколько раз повторено в данном топике

да ?
первая команда падает у меня :)

SET DATEFORMAT dmy

DECLARE @datevar datetime
SET @datevar = '2000-1-20'
SELECT @datevar



SET DATEFORMAT mdy
SET @datevar = '2000-1-20'
SELECT @datevar
17 май 06, 12:14    [2673489]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
да ?
первая команда падает у меня :)

И что дальше ?
Если вы считаете, что нашли баг, то открывайте case в службе поддержки
17 май 06, 12:30    [2673621]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
Glory
да ?
первая команда падает у меня :)

И что дальше ?
Если вы считаете, что нашли баг, то открывайте case в службе поддержки


Я так не считаю, я пытаюсь найти способо решения проблемы ;) Универсальный формат - это {d'2005-1-15'}, а то что я привёл насколько понимаю - не универсальный формат. Но при этом работает довольно специфично.
17 май 06, 12:53    [2673829]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
tester 009
Glory
tester 009
[quot Glory]DBCC USEROPTIONS


пишет dateformat mdy, что соответсвует us-english :) при этом наблюдается то что дата
'2005-5-15' работает :)
при этом
'15/5/2005' падает :)

Как и было указано выше.


'2005-5-15' это универсальный формат который сервер поймет всегда, независмо от dateformat. Об этом написано в ссылке и несколько раз повторено в данном топике

да ?
первая команда падает у меня :)

SET DATEFORMAT dmy

DECLARE @datevar datetime
SET @datevar = '2000-1-20'
SELECT @datevar



SET DATEFORMAT mdy
SET @datevar = '2000-1-20'
SELECT @datevar

Действительно, падает. Кстати, на SQL2005 тоже. А вот такой работает:
SET DATEFORMAT dmy
DECLARE @datevar datetime
SET @datevar = '2000-01-20T00:00:00'
SELECT @datevar
Так что YYYY-MM-DD не является инвариантом, а YYYY-MM-DDThh:mm:ss[.mmm] и [YY]YYMMDD[ hh:mm:ss] - являются.
17 май 06, 12:55    [2673845]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Glory
Member

Откуда:
Сообщений: 104764
tester 009
Glory
да ?
первая команда падает у меня :)

И что дальше ?
Если вы считаете, что нашли баг, то открывайте case в службе поддержки


Я так не считаю, я пытаюсь найти способо решения проблемы ;) Универсальный формат - это {d'2005-1-15'}, а то что я привёл насколько понимаю - не универсальный формат. Но при этом работает довольно специфично.

Универсальный форамат это 'YYYYMMDD HH:MM:SS' о чем было сказано в ссылке
17 май 06, 12:59    [2673885]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
tester 009
Guest
iap
tester 009
Glory
tester 009
[quot Glory]DBCC USEROPTIONS


пишет dateformat mdy, что соответсвует us-english :) при этом наблюдается то что дата
'2005-5-15' работает :)
при этом
'15/5/2005' падает :)

Как и было указано выше.


'2005-5-15' это универсальный формат который сервер поймет всегда, независмо от dateformat. Об этом написано в ссылке и несколько раз повторено в данном топике

да ?
первая команда падает у меня :)

SET DATEFORMAT dmy

DECLARE @datevar datetime
SET @datevar = '2000-1-20'
SELECT @datevar



SET DATEFORMAT mdy
SET @datevar = '2000-1-20'
SELECT @datevar

Действительно, падает. Кстати, на SQL2005 тоже. А вот такой работает:
SET DATEFORMAT dmy
DECLARE @datevar datetime
SET @datevar = '2000-01-20T00:00:00'
SELECT @datevar
Так что YYYY-MM-DD не является инвариантом, а YYYY-MM-DDThh:mm:ss[.mmm] и [YY]YYMMDD[ hh:mm:ss] - являются.


Да, либо как пишут ребята из МС
автор

ADO, OLE DB, and ODBC applications should use the ODBC timestamp, date, and time escape clauses of:
{ ts 'yyyy-mm-dd hh:mm:ss[.fff] '} such as: { ts '1998-09-24 10:02:20' }
{ d 'yyyy-mm-dd'} such as: { d '1998-09-24' }
{ t 'hh:mm:ss'} such as: { t '10:02:20'}
17 май 06, 13:09    [2673958]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить