Преобразование даты с "19 января 2019 г. на 02 января 2019 г."
Как преобразовать значения столбца varchar(25) из дат в формате "JAN02/19" в "2019-01-02"(ГГГГ-ММ-ДД)?
2 ответа
Решение
Возможно что-то вроде этого
Declare @S varchar(25)='JAN02/19'
Select try_convert(date,replace(@S,'/',' 20'))
Возврат
2019-01-02
Вы можете сделать что-то вроде ниже:
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 в случае неправильного значения месяца.