在sql server中将字符串转换为datetime

时间:2013-02-01 19:46:07

标签: sql datetime

我有一列没有分隔符的日期。该列是nvarchar。字符串的长度和格式一致MMDDYYYY。如何将这些值转换为datetime

编辑 - 这个问题是关于sql server的。

3 个答案:

答案 0 :(得分:3)

假设SQL Server:

DECLARE @A NVARCHAR(10)
SET @A = '11302012'

SELECT CONVERT(DATETIME,LEFT(@A,2) + '/' + 
       SUBSTRING(@A,3,2) + '/' + RIGHT(@A,4),101)

答案 1 :(得分:0)

BEGIN
DECLARE @d DATETIME
DECLARE @s NVARCHAR(32)
SET @s = N'12012013'
SET @d = SUBSTRING(@s, 5,4) + SUBSTRING(@s, 1,2) + SUBSTRING(@s, 3,2)
SELECT @d
END

您只需将字符串转换为SQL Server可以正确解析为日期的格式。在上面它是YYYYMMDD格式。

编辑删除了“ - ”,因为法语设置会破坏它们。

答案 2 :(得分:0)

首先将格式更改为始终有效的格式,无论使用两个简单的字符串函数进行什么服务器设置(YYYYMMDD),然后转换为datetime:

declare @datestring varchar(8) = '11302012';

select CONVERT(datetime, RIGHT(@datestring, 4) + LEFT(@datestring, 4)) ConvertedDatetime;