Преобразование даты с "JAN02 / 19 на 2019-01-02 - PullRequest
0 голосов
/ 15 января 2020

Как преобразовать значения столбца varchar (25) из дат в формате "JAN02 / 19" в "2019-01-02" (ГГГГ-ММ-ДД)?

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Возможно что-то вроде этого

Declare @S varchar(25)='JAN02/19'

Select try_convert(date,replace(@S,'/',' 20'))

Возвращает

2019-01-02
0 голосов
/ 15 января 2020

Вы можете сделать что-то вроде ниже:

DECLARE @Date Varchar(10)
Set @Date='JAN02/19'
select DATEFROMPARTS('20'+substring(@Date,7,2),CHARINDEX(@Date,'JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC')/4+1,substring(@Date,4,2))

Это должно дать выходные данные в желаемом формате.

Редактировать:

Для размещения неправильных значений месяца:

DECLARE @Date Varchar(10)
Set @Date='JAN02/19'
select DATEFROMPARTS('20'+substring(@Date,7,2),NULLIF(CHARINDEX(substring(@Date,1,3),'JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC'),0)/4+1,substring(@Date,4,2))

Возвращает NULL, если значения месяца неправильные.

...