如何将包含日期的varchar字段类型转换为正确的日期格式

时间:2016-05-02 07:15:03

标签: sql-server date sql-server-2008-r2 type-conversion

我有一个包含日期值的varchar字段,如:

02042015

如何将其转换为应返回值的DATE格式:

2 Apr 2015

3 个答案:

答案 0 :(得分:2)

您可以在{<1}}格式中使用CONVERT

106

<强>输出

declare @date varchar(60) = '02042015'
select convert(varchar(20),cast(right(@date,4) + substring(@date,3,2) + left(@date,2) as datetime), 106)

答案 1 :(得分:0)

我认为会有一些转换格式,所以你可以把:

select(convert(datetime,'010109',<some magic number>))

并得到结果,但我似乎无法找到一个给出正确日期

你也可以试试这个:

declare @dt varchar(6)
select @dt = '010109'
select convert(datetime,RIGHT(@dt,2) + SUBSTRING(@dt,3,2) + LEFT(@dt,2))

答案 2 :(得分:0)

试试这个

DECLARE @V_DATE VARCHAR(20) = '02042015'
SELECT CONVERT(varchar(11), 
            CONVERT(datetime,RIGHT(@V_DATE,4)+LEFT(@V_DATE,2)+SUBSTRING(@V_DATE,3,2))
            ,106)