从 "JAN02/19 到 2019-01-02 的日期转换
Date conversion from "JAN02/19 to 2019-01-02
如何将 varchar(25) 列的值从 "JAN02/19" 格式的日期转换为“2019-01-02”(YYYY-MM-DD)?
您可以执行如下操作:
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))
如果月份值不正确,这将 return NULL。
也许是这样的
Declare @S varchar(25)='JAN02/19'
Select try_convert(date,replace(@S,'/',' 20'))
Returns
2019-01-02
如何将 varchar(25) 列的值从 "JAN02/19" 格式的日期转换为“2019-01-02”(YYYY-MM-DD)?
您可以执行如下操作:
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))
如果月份值不正确,这将 return NULL。
也许是这样的
Declare @S varchar(25)='JAN02/19'
Select try_convert(date,replace(@S,'/',' 20'))
Returns
2019-01-02