даты до 1950 года приравнивают будущую дату - PullRequest
2 голосов
/ 21 марта 2012

Мне нужно преобразовать строковую дату в тип datetime.

Вот один сценарий даты:

'19 -Apr-36 '

DECLARE @strDate VARCHAR(25)
SELECT @strDate = '19-Apr-36'

SELECT CAST(@strDate as datetime)

приводит кбудущая дата 2036-04-19

как это обычно обрабатывается и какие еще есть предостережения?

Ответы [ 2 ]

10 голосов
/ 21 марта 2012

SQL Server по умолчанию интерпретирует год 36 как текущий век. Вам нужно будет явно указать 1936 или изменить опцию двузначный год .

Редактировать: просто чтобы уточнить - вы не хотите изменять настройку, так как она распространяется на весь сервер и вызовет больше путаницы, чем поможет Желательно указывать точные даты.

1 голос
/ 21 марта 2012

Вы можете установить год, когда будет меняться век

sp_configure 'two digit year cutoff', 2070
reconfigure
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...