我有一列没有分隔符的日期。该列是 nvarchar。字符串的长度和格式是一致的MMDDYYYY
。如何将这些值转换为datetime
?
编辑 - 这个问题是关于 sql server 的。
假设 SQL Server:
DECLARE @A NVARCHAR(10)
SET @A = '11302012'
SELECT CONVERT(DATETIME,LEFT(@A,2) + '/' +
SUBSTRING(@A,3,2) + '/' + RIGHT(@A,4),101)
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 服务器可以正确解析为日期的格式。在上面它是 YYYYMMDD 格式。
编辑删除了“-”,因为法语设置破坏了它们。
首先使用两个简单的字符串函数将格式更改为无论服务器设置如何(YYYYMMDD)都始终有效的格式,然后转换为日期时间:
declare @datestring varchar(8) = '11302012';
select CONVERT(datetime, RIGHT(@datestring, 4) + LEFT(@datestring, 4)) ConvertedDatetime;