在 SQL Server 中将字符串转换为日期时间



我有一列没有分隔符的日期。该列是 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;

相关内容

  • 没有找到相关文章

最新更新