Varchar至今转换

时间:2019-09-23 20:50:24

标签: sql date data-conversion

问题转换日期。有些格式为mdyyyy,有些格式为mmddyyyy,并存储为varchar。有谁知道我将这些格式转换为日期格式的最佳选择?

1 个答案:

答案 0 :(得分:0)

Declare @date1 varchar(8) = '872019',@date2 varchar(8) = '08122019'

Select 
@date1 as date1,
CASE 
WHEN LEN(@date1) < 8 
THEN CAST(SUBSTRING(@date1,3,4)
        + REPLICATE('0',2-LEN(SUBSTRING(@date1,1,1))) + SUBSTRING(@date1,1,1) 
        + REPLICATE('0',2-LEN(SUBSTRING(@date1,2,1))) + SUBSTRING(@date1,2,1) AS DATE)
ELSE CAST(SUBSTRING(@date1,5,4)+SUBSTRING(@date1,1,2)+SUBSTRING(@date1,3,2) as date) END as casted_date1,
@date2 as date2,
cast(substring(@date2,5,4)+substring(@date2,1,2)+SUBSTRING(@date2,3,2) as date) as casted_date2