如何将日期时间的varchar(6)
转换为char(8)
?例如,我需要将022814
转换为02/28/14
。此外,由于第一个“日期”定义为varchar(6)
,因此22814也有效。所以我应该能够将22814转换为02/28/14。
我试过
select convert(char(8), '022814', 1)
但它返回022814
而不是02/28/14
。然而
select convert(char(8), getdate(), 1))
将返回正确的格式04/25/14
。我不知道为什么?
所以我想也许我可以尝试先将'022814'转换为日期时间。但我得到一个错误“将char数据类型转换为日期时间数据类型导致超出范围的datetime值”。有人可以给我一些想法吗?
答案 0 :(得分:1)
这并不容易,但你可以沿着这些方向做点什么:
SET DATEFORMAT MDY
DECLARE @DateString VARCHAR(6)
SET @DateString = '022814'
SELECT CONVERT(DATETIME, SUBSTRING(@DateString,1,2) + '/' + SUBSTRING(@DateString,3,2) + '/' + SUBSTRING(@DateString,5,2))