0

如何将 varchar(25) 列的值从“JAN02/19”格式的日期转换为“2019-01-02”(YYYY-MM-DD)?

4

2 回答 2

2

也许像这样

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

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

退货

2019-01-02
于 2020-01-15T16:44:36.483 回答
0

您可以执行以下操作:

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。

于 2020-01-15T16:42:51.893 回答