SQL Server конвертировать строку, представляющую дату, время и дату - PullRequest
1 голос
/ 28 июня 2019

Я пытаюсь привести строку «2019-31-01 09:00:00» к дате.

SELECT CAST('2019-31-01 09:00:00.000' AS date);

SQL Server возвращает сообщение об ошибке: не удалось преобразовать дату и / или время из символьной строки.

Принимая во внимание

DECLARE @MyDate AS datetime = '2019-31-01 00:00:00';
SELECT CAST(@MyDate AS date)    
--2019-01-31

Работает. Из-за локали. Смущает?

Ответы [ 2 ]

1 голос
/ 29 июня 2019

Формат даты в: yyyy-mm-dd:

SELECT CAST('2019-01-31 09:00:00.000' AS date);
1 голос
/ 28 июня 2019

Используйте разумный формат даты / времени (ГГГГ-ММ-ДД):

SELECT CAST('2019-01-31 09:00:00.000' AS date);

Или то, что Microsoft рекомендует:

SELECT CAST('2019-01-31T09:00:00.000' AS date);

Примечание. Вы потеряете компонент времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...