首页 > 解决方案 > 在 SQL 中将 ISO-8601 varchar (0000-00-00T00:00:00+00:00) 转换为 datetime

问题描述

如何在 SQL 中将 2019-07-01T00:00:00+05:30 转换为 DateTime?

2019-07-01T00:00:00+05:30 是一个 varchar 字段。我需要将其转换为 DateTime 以将其与日期字段进行比较。
建议我查询将 (2019-07-01T00:00:00+05:30) 转换为 DateTime

标签: sqlsql-serverdatetimeiso8601

解决方案


以下查询会将给定的 VARCHAR 转换为 DATETIME 值:

DECLARE @DateVal AS VARCHAR (30) = '2019-07-01T00:00:00+05:30';
SELECT CAST(REPLACE(SUBSTRING(@DateVal, 0, CHARINDEX('+', @DateVal)), 'T', ' ') AS DATETIME);

推荐阅读