我有一列没有分隔符的日期。该列是nvarchar。字符串的长度和格式一致MMDDYYYY
。如何将这些值转换为datetime
?
编辑 - 这个问题是关于sql server的。
答案 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;