-2

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

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

4

3 回答 3

3

假设 SQL Server:

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

SELECT CONVERT(DATETIME,LEFT(@A,2) + '/' + 
       SUBSTRING(@A,3,2) + '/' + RIGHT(@A,4),101)
于 2013-02-01T19:51:35.017 回答
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 服务器可以正确解析为日期的格式。在上面它是 YYYYMMDD 格式。

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

于 2013-02-01T19:50:27.123 回答
0

首先使用两个简单的字符串函数将格式更改为无论服务器设置如何(YYYYMMDD)都始终有效的格式,然后转换为日期时间:

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

select CONVERT(datetime, RIGHT(@datestring, 4) + LEFT(@datestring, 4)) ConvertedDatetime;
于 2013-02-04T13:39:41.630 回答