Преобразовать строку в дату в sql - PullRequest
0 голосов
/ 21 февраля 2020

как мне преобразовать это:

DECLARE @FromDate varchar = 'Feb 2020'

в дату типа этой

DD/MM/YYYY or DDMMYYYY

Мне нужно отсортировать некоторые даты, и из выпадающего списка вы можете просто выбрать эти три: Dez 2019, январь 2020 или февраль 2020. Поэтому я подумал, что мог бы сделать что-то вроде этого:

DECLARE @FromDate varchar = 'Feb 2020';


SELECT RIGHT(convert(varchar, CONVERT(date, CONVERT(varchar, PIN_DATE)), 106),8)
FROM PIN
WHERE RIGHT(CONVERT(varchar, CONVERT(date, CONVERT(varchar, PIN_DATE)), 106),8) 
= CONVERT(datetime, @FromDate,106)

Дата в PIN_DATE выглядит следующим образом: ГГГГММДД ака. 20201231

1 Ответ

1 голос
/ 21 февраля 2020

Это ОШИБКА:

DECLARE @FromDate varchar = 'Feb 2020'

Это присваивает @FromDate как ОДИН символ, поэтому значение равно 'F'.

При использовании типов символов в SQL Сервер, всегда используйте длину:

DECLARE @FromDate varchar(255) = 'Feb 2020'
...