将 varchar yyyy-mm-dd T hh:mm 转换为 sql 服务器中的 datetime2
convert varchar yyyy-mm-dd T hh:mm to datetime2 in sql server
如果varchar是2021-08-15T14:00:06Z格式,我可以用下面的代码转换
SELECT CONVERT(datetime2, '2021-08-15T14:00:06Z')
结果:2021-08-15 14:00:06.0000000
如果数据格式为yyyy-mm-dd T hh:mm
SELECT CONVERT(datetime2, '2021-08-15T14:03')
结果:
Conversion failed when converting date and/or time from character string.
问题:如何将 varchar(50): yyyy-mm-dd T hh:mm 转换为 datetime2: yyyy-mm-dd hh:mm:ss.000
varchar(50): '2021-08-15T14:03'
预期结果:datetime2: 2021-08-15 14:03:00.000
格式非常接近 ISO8601,使用起来可能最简单...
declare @somedate char(16) = '2021-08-15T14:03';
select convert(datetime2, @somedate + ':00', 126);
或者只是剪掉“T”...
declare @somedate char(16) = '2021-08-15T14:03';
select convert(datetime2, replace(@somedate, 'T', ' '), 120);
如果格式是 yyyy-MM-dd-THH:mm
,这是另一种选择,您可以简单地连接秒数。
SELECT CONVERT(datetime2, '2021-08-15T14:03'+':00')
结果
2021-08-15 14:03:00.0000000
如果varchar是2021-08-15T14:00:06Z格式,我可以用下面的代码转换
SELECT CONVERT(datetime2, '2021-08-15T14:00:06Z')
结果:2021-08-15 14:00:06.0000000
如果数据格式为yyyy-mm-dd T hh:mm
SELECT CONVERT(datetime2, '2021-08-15T14:03')
结果:
Conversion failed when converting date and/or time from character string.
问题:如何将 varchar(50): yyyy-mm-dd T hh:mm 转换为 datetime2: yyyy-mm-dd hh:mm:ss.000
varchar(50): '2021-08-15T14:03' 预期结果:datetime2: 2021-08-15 14:03:00.000
格式非常接近 ISO8601,使用起来可能最简单...
declare @somedate char(16) = '2021-08-15T14:03';
select convert(datetime2, @somedate + ':00', 126);
或者只是剪掉“T”...
declare @somedate char(16) = '2021-08-15T14:03';
select convert(datetime2, replace(@somedate, 'T', ' '), 120);
如果格式是 yyyy-MM-dd-THH:mm
,这是另一种选择,您可以简单地连接秒数。
SELECT CONVERT(datetime2, '2021-08-15T14:03'+':00')
结果
2021-08-15 14:03:00.0000000