如何将varchar(6)转换为char(8)以获取日期

时间:2014-04-25 15:15:15

标签: sql-server-2008 datetime

如何将日期时间的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值”。有人可以给我一些想法吗?

1 个答案:

答案 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))