Вопрос

По умолчанию 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)

Надеюсь, поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top