2012-03-13 15 views
0

Как получить формат дату машины скрипт работает наполучить формат дату установки машины

declare @inputdate varchar(25) 
declare @datetemp datetime 

select @inputdate = '3/13/2012' 

select @datetemp = CAST(@inputdate as DATETIME) 

select @datetemp 

вот сценарий: у меня есть строка даты вхождения и мне нужно отформатировать дату сша (мм/дд/гггг/ам) по сравнению с другими датами в других частях страны (которые могут быть дд/мм/гггг 24: ч)

поэтому мне нужно найти способ получить настройки формата даты машины.

+0

Обычно это делается на стороне клиента ... вы работаете на веб-сайте, приложении Windows или что? – Andomar

ответ

1

Я подозреваю, что установка формата даты машины не совсем то, что вы хотите. Когда вы запускаете запрос на сервере, он использует настройку языка зарегистрированного пользователя. Существует способ, чтобы получить DateFormat от зарегистрированного пользователя ...

Select DateFormat 
From sys.syslanguages 
Where name = @@Language 

Это вернет DateFormat. Для us_english он возвращает mdy.

+0

Что мне нужно изменить (на моем сервере или во время установки), чтобы создать формат даты dmy по умолчанию. Я хочу имитировать машину, которая из другой страны? – Rod

+0

Вы можете изменить язык по умолчанию для всех логинов, а также изменить язык по умолчанию для новых учетных записей. См. Здесь: http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/setting-a-standard-dateformat-for-sql-se –

1

Опираясь на региональные настройки оборудования на уровне SQL, это будет довольно странный способ сделать это (особенно для сценария сервера/клиента, поскольку любой SQL получит настройки серверов). Например, вместо того, чтобы полагаться на CAST для преобразования вашей строки в дату, вы должны быть немного более конкретными, указав в каком формате исходная строка. Например:

DECLARE @inputdate VARCHAR(25) 
DECLARE @datetemp DATETIME 
SELECT @inputdate = '13/03/2012' 
SELECT CONVERT(DATETIME, @inputdate, 103) --### 103 = DD/MM/YYYY input date 
SELECT @inputdate = '03/13/2012' 
SELECT CONVERT(DATETIME, @inputdate, 110) --### 110 = MM/DD/YYYY input date 

Обратите внимание, как две различные даты ввода могут быть преобразованы в тот же день, говоря SQL, какой формат строки в нем будет до вашего интерфейса либо ограничить пользователя в определенный формат даты. или определить региональные настройки и передать это в SQL &, SQL имеет соответствующий параметр стиля.

+0

моя проблема заключается в том, что это скрипт sql file.sql, и я не уверен, как получить эту информацию в sql-скрипте из кода ui (C# setup program.exe) – Rod

+0

Этот файл сценария sql должен запускаться с экземпляром SQL хоть? как только вы это сделаете, любой SQL, который очистил региональные настройки, очистит настройки серверов, а не клиента ... Если вы хотите использовать файлы * .sql - вам просто придется редактировать их, чтобы включить формат в соответствии с моим ответом. – HeavenCore

Смежные вопросы