Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
проходящий.
Guest |
Не надо ничего переставлять. |
||
15 май 09, 19:17 [7187267] Ответить | Цитировать Сообщить модератору |
DNV Member Откуда: Ильичевск (Одесса) Сообщений: 277 |
увы... из хелпаЭта настройка влияет на интерпретацию символьных строк при их преобразовании в значения даты для хранения в базе данных. Настройка не влияет на отображение дат, хранящихся в базе данных, а также на формат их хранения.ни Set dateformat mdy; ни SET LANGUAGE us_english; не помогло |
15 май 09, 19:25 [7187282] Ответить | Цитировать Сообщить модератору |
DNV Member Откуда: Ильичевск (Одесса) Сообщений: 277 |
точнее SET LANGUAGE us_english; помогает, но только для текущего подключения. а как для всего сервера, или хотя бы для всей базы... |
15 май 09, 19:32 [7187304] Ответить | Цитировать Сообщить модератору |
DeColo®es Member Откуда: Москва Сообщений: 5503 Блог |
Варианты: 1) У всех логинов указать язык - english 2) Использовать функцию convert с указанием нужного формата. Список форматов один для всех редакций, от языка зависит как раз только нулевой формат. |
15 май 09, 19:48 [7187336] Ответить | Цитировать Сообщить модератору |
DNV Member Откуда: Ильичевск (Одесса) Сообщений: 277 |
как раз тоже прочитал на англ. форуме что нужно изменить язык логина по умолчанию помогло! всем спасибо |
15 май 09, 19:50 [7187340] Ответить | Цитировать Сообщить модератору |
monsenior Member Откуда: Москва Сообщений: 883 |
гм а в чем проблема то? Дата и в Америке дата и только для отображения другая |
||
15 май 09, 19:50 [7187342] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
Но можно пользоваться стандартными строковыми форматами, и ни о чём не заботиться, а можно считать, что весь мир живёт по американским правилам. И это при том, что здесь, на форуме, по десять раз в день рекомендуют пользоваться вполне определёнными форматами. И даже вынесли этот вопрос в FAQ |
||||
15 май 09, 20:01 [7187364] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
А в данном случае пишите вот так, и никаких проблем никогда! CONVERT(CHAR(23), GETDATE(),126)Хоть английский язык, хоть турецкий! А 101-й формат как раз зависит от DATEFORMAT и LANGUAGE |
||
15 май 09, 20:28 [7187419] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
Как это 101-й формат может от чего-то зависеть! Прошу не обращать на мои слова внимания. Извините. ![]() |
||||
15 май 09, 20:33 [7187432] Ответить | Цитировать Сообщить модератору |
DNV Member Откуда: Ильичевск (Одесса) Сообщений: 277 |
Видать когда читал, не обратил внимания ![]() не было раньше нужды в такой конвертации спасибо. это самый подходящий вариант |
15 май 09, 20:36 [7187441] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
Bagir Member Откуда: Сообщений: 52 |
Переехал с одного SQL 2008 R2 на другой SQL 2008 R2. Базу перенёс через бэкап. Всё заработало, но сразу я не увидел спрятанные в траве грабли. Язык у пользователя раньше был Английский, а на новой машине Русский. Поэтому изменилось представление даты. Если язык Английский, то '2017-05-04' месяц 5 а число 4. При Русском языке месяц 4 а число 5. Переключения языка у пользователя с Русского на Английский помогло вернуть нужное мне датапредставление, чтобы не переписывать код. |
5 май 17, 11:21 [20459830] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 942 |
Я вас поздравляю, за три года ваш уровень SQL вырос на столько, что вы можете себе позволить применять нестандартные решения, вместо адекватного рефакторинга кода. А теперь магия: 1. '20170504' будет четвертым мая 2017 года при любых настройках языка 2. '2017-05-04T00:00:00.000' будет полночью четвертого мая 2017 года при любых настройках языка |
||
5 май 17, 12:02 [20460049] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
Bagir, прочитайте внимательно: https://msdn.microsoft.com/ru-ru/library/ms180878(v=sql.130).aspx |
5 май 17, 14:57 [20460955] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 942 |
1. Я не люблю, когда лепят костыли, потому что лень/некогда/не умеют сделать правильно. Но это мое мнение. Один мой знакомый говорит
2. Ваше решение плохое, матерые SQLщики знают, что оно плохое, а новички - нет. Вероятность, что наткнувшийся на ваше решение неофит поступит так же очень велика (около 0.5), и именно поэтому вызвало мое недовольство. |
||||
5 май 17, 15:23 [20461087] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Вдруг кто то прочтёт, и сделает так же???
|
||||||
5 май 17, 15:39 [20461182] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |