Изменить преобразованный формат в дату ISO - SQL Server - PullRequest
2 голосов
/ 24 апреля 2019

У меня есть данные, где дата хранится в виде текста, например:

01 января 2001 г.

Я вижу несколько примеров, показывающих, как форматировать дату и время в этом формате, но я ищу функцию, чтобы изменить ее обратно на дату.

Что еще более запутанно, так это то, что я пытался дать мне "2020-01-01". Есть предложения?

DECLARE @d varchar(10) = 'Jan 01, 2001'
SELECT TRY_CONVERT(date, @d)

sql result

Я использую SQL Server 2014.

1 Ответ

6 голосов
/ 24 апреля 2019

Ваша строка недостаточно длинна. Объявите это с достаточно длинной длиной:

DECLARE @d varchar(255) = 'Jan 01, 2001';

SELECT TRY_CONVERT(date, @d);

Если вы укажете значение @d, вы увидите, что возвращает этот код:

DECLARE @d varchar(10) = 'Jan 01, 2001';

SELECT @d, TRY_CONVERT(date, @d);

, что 'Jan 01, 20'. SQL Server интерпретирует это как 2020.

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