Установить локаль SQL Server 2005
-
03-07-2019 - |
Вопрос
По умолчанию SQL Server поставляется с установленным языком «Английский (США)», устанавливая формат даты мм/дд/гг вместо формата даты, который мне нужен, который является австралийским и имеет формат даты, такой как дд. /мм/гг.
Есть ли опция в инструментах Server Management Studio/Configuration, где я могу установить языковой стандарт SQL Server, который предотвратит форматирование полей DateTime в формате даты США?
Если нет, то как я могу преобразовать его, когда я использую SQL-запрос, например (простите меня, если есть неправильный синтаксис, я придумал его на месте):
Dim dc As New SqlCommand("INSERT INTO hello VALUES (@Date)", cn)
dc.Parameters.Add(New SqlParameter("Date", System.DateTime.Now))
Спасибо заранее.:)
Решение
Вы можете установить язык/локаль по умолчанию для каждого пользователя из SQL Management Studio (см. папку «Безопасность»).
И переопределите это для конкретного соединения с помощью команды SET LANGUAGE (или SET DATEFORMAT, если вы просто хотите изменить формат даты).
Вы также можете установить язык по умолчанию (используемый для новых пользователей) в SQL Management Studio:щелкните правой кнопкой мыши по серверу, выберите «Свойства/Дополнительно/Язык по умолчанию».
Другие советы
понятия не имею, какой формат в "внизу"
дд/мм/гггг чч:мм:сс ?
если да, то эта дата является британской/французской аннотацией, поэтому все, что вам нужно сделать, это:
INSERT INTO hello VALUES convert(datetime, @Date + ' 00:00:00', 103)
или
INSERT INTO hello VALUES convert(datetime, @Date, 103)
если ты действительно уточнил время
для получения дополнительной информации, проверьте Книги онлайн на MSDN чтобы получить правильный кодовый номер.
даже в Selects я всегда использую это, независимо от того, что в SQL (потому что я склонен использовать Hosting SQL и там не могу менять форматы), например:
SELECT myColumn FROM myTable WHERE myDateField >= convert(datetime, @Date + '00:00:00', 103)
Надеюсь, поможет