SQL日期列更新

时间:2018-02-04 10:50:41

标签: sql sql-server tsql date-formatting

我有一些包含一些列的表。该表格为executedate (char(12)),其值为2003/1/22004/01/122002/1/022002/05/09

我想将它们设为yyyy/mm/dd格式。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用parsename。这是一个样本

declare @t table (
    executedate char(12)
)

insert into @t 
values 
('2003/1/2')
, ('2004/01/12')
, ('2002/1/02')
, ('2002/05/09')

select 
    executedate
    , newVal = parsename(val, 3) + '/' + right('00' + parsename(val, 2), 2)
     + '/' + right('00' + parsename(val, 1), 2)
from 
    @t
    cross apply (select val = rtrim(replace(executedate, '/', '.'))) q1