Sql server 2008 如何将日期的varchar(6)转换为char(8)
如何将Sql server 2008 如何将日期的varchar(6)转换为char(8),sql-server-2008,datetime,Sql Server 2008,Datetime,如何将varchar(6)转换为char(8)的日期时间?例如,我需要将022814转换为02/28/14。此外,由于第一个“日期”定义为varchar(6),因此22814也有效。因此,我应该能够将22814转换为2014年2月28日 我试过了 select convert(char(8), '022814', 1) 但是它返回了022814而不是02/28/14。然而 select convert(char(8), getdate(), 1)) 将返回正确的格式04/25/14。我不知
varchar(6)
转换为char(8)
的日期时间?例如,我需要将022814
转换为02/28/14
。此外,由于第一个“日期”定义为varchar(6)
,因此22814也有效。因此,我应该能够将22814转换为2014年2月28日
我试过了
select convert(char(8), '022814', 1)
但是它返回了022814
而不是02/28/14
。然而
select convert(char(8), getdate(), 1))
将返回正确的格式04/25/14
。我不知道为什么
所以我想也许我可以先把“022814”转换成datetime。但我得到了一个错误“将char数据类型转换为datetime数据类型导致datetime值超出范围”。有人能给我一些想法吗?这并不容易,但你可以按照以下思路做一些事情:
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))
-您应该始终使用最合适的数据类型——毕竟,这就是它们的用途!不要将日期相关信息存储在字符串中!为此,请使用DATE
或DATETIME2(n)
!