Преобразовать строковый тип данных в значение даты в формат даты дд-мм-гггг - PullRequest
0 голосов
/ 01 мая 2019

Это заданное значение для преобразования:

DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'

Я хочу конвертировать в: 16-12-1997

Попытка № 1:

SELECT CAST(@Dt AS DATE)

Ошибка:

Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

Попытка № 2:

SELECT CONVERT(VARCHAR(20), @Dt, 105)

Результат:

16-12-1997 00:00:00 

Попытка № 3:

SELECT LEFT(@Dt, 10)

Попытка № 3 работает, но будет ли это возможно преобразованием / приведением?

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Это может быть сделано:

DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT CONVERT(varchar(10), @Dt);

Это то, что вы ищете?

0 голосов
/ 01 мая 2019

Другой способ сделать это - будет ошибка, если дата недействительна, и будет разрешена только подлинная дата

DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT format(CONVERT(DATE, @Dt,105),'dd-MM-yyyy');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...