Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
поставил SQL 2008 RUS, раньше стоял Eng
и сразу на сайте пошли глюки, ф-ция
CONVERT(char(20), postDate,0) дает русский формат
мес дд гггг чч:мм AM (или PM)
вместо MM/dd/yyyy hh:mm.... а нужен именно такой формат, но его в списке стилей даты и времени в русской версии нет.

можно ли где-то в настройках SQL Server указать чтоб использовать американский формат времени
или придется сносить и ставить English версию?
15 май 09, 19:12    [7187249]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
проходящий.
Guest
DNV
поставил SQL 2008 RUS, раньше стоял Eng
и сразу на сайте пошли глюки, ф-ция
CONVERT(char(20), postDate,0) дает русский формат
мес дд гггг чч:мм AM (или PM)
вместо MM/dd/yyyy hh:mm.... а нужен именно такой формат, но его в списке стилей даты и времени в русской версии нет.

можно ли где-то в настройках SQL Server указать чтоб использовать американский формат времени
или придется сносить и ставить English версию?
Set dateformat dmy
Не надо ничего переставлять.
15 май 09, 19:17    [7187267]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
увы... из хелпа
Эта настройка влияет на интерпретацию символьных строк при их преобразовании в значения даты для хранения в базе данных. Настройка не влияет на отображение дат, хранящихся в базе данных, а также на формат их хранения.
ни
Set dateformat mdy;
ни
SET LANGUAGE us_english;

не помогло
15 май 09, 19:25    [7187282]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
точнее

SET LANGUAGE us_english; помогает, но только для текущего подключения.
а как для всего сервера, или хотя бы для всей базы...
15 май 09, 19:32    [7187304]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
Варианты:
1) У всех логинов указать язык - english
2) Использовать функцию convert с указанием нужного формата.
Список форматов один для всех редакций, от языка зависит как раз только нулевой формат.
15 май 09, 19:48    [7187336]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
как раз тоже прочитал на англ. форуме что нужно изменить язык логина по умолчанию
помогло!

всем спасибо
15 май 09, 19:50    [7187340]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
monsenior
Member

Откуда:
Сообщений: 746
DNV
точнее

SET LANGUAGE us_english; помогает, но только для текущего подключения.
а как для всего сервера, или хотя бы для всей базы...

гм а в чем проблема то?
Дата и в Америке дата и только для отображения другая
15 май 09, 19:50    [7187342]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
monsenior
DNV
точнее

SET LANGUAGE us_english; помогает, но только для текущего подключения.
а как для всего сервера, или хотя бы для всей базы...

гм а в чем проблема то?
Дата и в Америке дата и только для отображения другая
Если надо ограничить дату в WHERE литеральными значениями, выбора нет - придётся использовать строковое представление!
Но можно пользоваться стандартными строковыми форматами, и ни о чём не заботиться,
а можно считать, что весь мир живёт по американским правилам.
И это при том, что здесь, на форуме, по десять раз в день рекомендуют пользоваться вполне определёнными форматами.
И даже вынесли этот вопрос в FAQ
15 май 09, 20:01    [7187364]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
просто у меня user-function StrSum которая делает выборку и лепит несколько дат в строку по критерию Group
туда и попадает дата к-я потом отображается через asp.net

можно было конечно сделать 2 раза конвертацию
Convert(char(10), GETDATE(),101) + ' '+Convert(char(5), GETDATE(),8)
но 2 конвертации думаю менее производительно...
надо будет попрофайлить...
15 май 09, 20:14    [7187396]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
DNV
просто у меня user-function StrSum которая делает выборку и лепит несколько дат в строку по критерию Group
туда и попадает дата к-я потом отображается через asp.net

можно было конечно сделать 2 раза конвертацию
Convert(char(10), GETDATE(),101) + ' '+Convert(char(5), GETDATE(),8)
но 2 конвертации думаю менее производительно...
надо будет попрофайлить...
А Вы что, FAQ не читали?
А в данном случае пишите вот так, и никаких проблем никогда!
CONVERT(CHAR(23), GETDATE(),126)
Хоть английский язык, хоть турецкий!
А 101-й формат как раз зависит от DATEFORMAT и LANGUAGE
15 май 09, 20:28    [7187419]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
iap
DNV
просто у меня user-function StrSum которая делает выборку и лепит несколько дат в строку по критерию Group
туда и попадает дата к-я потом отображается через asp.net

можно было конечно сделать 2 раза конвертацию
Convert(char(10), GETDATE(),101) + ' '+Convert(char(5), GETDATE(),8)
но 2 конвертации думаю менее производительно...
надо будет попрофайлить...
А Вы что, FAQ не читали?
А в данном случае пишите вот так, и никаких проблем никогда!
CONVERT(CHAR(23), GETDATE(),126)
Хоть английский язык, хоть турецкий!
А 101-й формат как раз зависит от DATEFORMAT и LANGUAGE
Какую чушь написал! даже стыдно стало.
Как это 101-й формат может от чего-то зависеть!
Прошу не обращать на мои слова внимания. Извините.
15 май 09, 20:33    [7187432]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
DNV
Member

Откуда: Ильичевск (Одесса)
Сообщений: 277
Видать когда читал, не обратил внимания
не было раньше нужды в такой конвертации

спасибо. это самый подходящий вариант
15 май 09, 20:36    [7187441]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: SQL Server 2008 RU и англ. формат даты  [new]
Bagir
Member

Откуда:
Сообщений: 52
Переехал с одного SQL 2008 R2 на другой SQL 2008 R2. Базу перенёс через бэкап. Всё заработало, но сразу я не увидел спрятанные в траве грабли. Язык у пользователя раньше был Английский, а на новой машине Русский. Поэтому изменилось представление даты.
Если язык Английский, то '2017-05-04' месяц 5 а число 4. При Русском языке месяц 4 а число 5. Переключения языка у пользователя с Русского на Английский помогло вернуть нужное мне датапредставление, чтобы не переписывать код.
5 май 17, 11:21    [20459830]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Bagir
Переехал с одного SQL 2008 R2 на другой SQL 2008 R2. Базу перенёс через бэкап. Всё заработало, но сразу я не увидел спрятанные в траве грабли. Язык у пользователя раньше был Английский, а на новой машине Русский. Поэтому изменилось представление даты.
Если язык Английский, то '2017-05-04' месяц 5 а число 4. При Русском языке месяц 4 а число 5. Переключения языка у пользователя с Русского на Английский помогло вернуть нужное мне датапредставление, чтобы не переписывать код.

Я вас поздравляю, за три года ваш уровень SQL вырос на столько, что вы можете себе позволить применять нестандартные решения, вместо адекватного рефакторинга кода.
А теперь магия:
1. '20170504' будет четвертым мая 2017 года при любых настройках языка
2. '2017-05-04T00:00:00.000' будет полночью четвертого мая 2017 года при любых настройках языка
5 май 17, 12:02    [20460049]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
Bagir
Member

Откуда:
Сообщений: 52
Руслан Дамирович, ну чтож, сударь, постебаться вы любите, это заметно. Для справки, я не знаток SQL, но по долгу службы мне пришлось изучить некоторые азы и использовать его в своих программах. Конечно же я многого не знаю, и мир SQL для меня полон открытий. Решив задачу, пускай даже и таким способом, я просто решил поделиться в этой теме. SQL мне очень понравился, но сейчас к сожалению нет ни времени ни необходимости для более детального изучения.
про '20170504' уже полян методом научного тыка. То что значение будет одинаковым вообще при любых настройках языка конечно делает этот вариант более предпочтительным, и вероятно я всё же отредактирую весь свой код.
'2017-05-04T00:00:00.000' За это спасибо, пойду пробовать в Management Studio. Я использую похожий вариант '2017-05-04 00:00:00' и он зависит от выбранного языка.
5 май 17, 14:09    [20460672]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Bagir,

прочитайте внимательно: https://msdn.microsoft.com/ru-ru/library/ms180878(v=sql.130).aspx
5 май 17, 14:57    [20460955]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Bagir
Руслан Дамирович, ну чтож, сударь, постебаться вы любите, это заметно. Для справки, я не знаток SQL, но по долгу службы мне пришлось изучить некоторые азы и использовать его в своих программах. Конечно же я многого не знаю, и мир SQL для меня полон открытий. Решив задачу, пускай даже и таким способом, я просто решил поделиться в этой теме. SQL мне очень понравился, но сейчас к сожалению нет ни времени ни необходимости для более детального изучения.

1. Я не люблю, когда лепят костыли, потому что лень/некогда/не умеют сделать правильно. Но это мое мнение. Один мой знакомый говорит
автор
DON'T CARE IF THEY SAY YOU'RE BAD, CARE IF THEY SAY YOU'RE GOOD
.
2. Ваше решение плохое, матерые SQLщики знают, что оно плохое, а новички - нет. Вероятность, что наткнувшийся на ваше решение неофит поступит так же очень велика (около 0.5), и именно поэтому вызвало мое недовольство.
5 май 17, 15:23    [20461087]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2008 RU и англ. формат даты  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30781
Bagir
Конечно же я многого не знаю, и мир SQL для меня полон открытий. Решив задачу, пускай даже и таким способом, я просто решил поделиться в этой теме.
Зачем делиться, если вы сами знаете, что не знаете?

Вдруг кто то прочтёт, и сделает так же???
Bagir
про '20170504' уже полян методом научного тыка. То что значение будет одинаковым вообще при любых настройках языка конечно делает этот вариант более предпочтительным, и вероятно я всё же отредактирую весь свой код.
Вот это правильно. Можно было и не методом тыка, а прочесть хотя бы эту тему.
Bagir
'2017-05-04T00:00:00.000' За это спасибо, пойду пробовать в Management Studio. Я использую похожий вариант '2017-05-04 00:00:00' и он зависит от выбранного языка.
Эти варианты совсем не похожи. В первом - год-месяц-день, а во втором - нет.
5 май 17, 15:39    [20461182]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить