我有一个varchar列,其值如下所示
A
2015-4
2015-12
2015-9
我需要新列看起来像
A
2015-04
2015-12
2015-09
任何指针都受到高度赞赏。
答案 0 :(得分:2)
您可以考虑将其转换为正确的DATE
,然后在使用SQL Server 2012及更高版本时通过FORMAT()
函数对其进行格式化:
SELECT FORMAT(CAST(YourColumn + '-1' AS DATE),'yyyy-MM')
答案 1 :(得分:1)
stuff()
怎么样?
select (case when len(a) = 6
then stuff(a, 6, 0, '0')
else a
end) as a
或者:
select (case when len(a) = 6
then replace(a, '-', '-0')
else a
end) as a
答案 2 :(得分:0)
DECLARE @Table1 TABLE
(A varchar(7))
;
INSERT INTO @Table1
(A)
VALUES
('2015-4'),
('2015-12'),
('2015-9')
;
陈旧方法:适用于2008年及以后上述
select SUBSTRING(A,0,CHARINDEX('-',A))+'-'+
RIGHT('000'+CAST(REVERSE(SUBSTRING(REVERSE(A),0,CHARINDEX('-',REVERSE(A)))) AS VARCHAR),2)
from @Table1