【发布时间】:2021-10-09 03:20:19
【问题描述】:
我有一个 XML 列,我从中提取日期时间:
SELECT PaymentXml.query('data(/PaymentSummary/SubmittedDate)') as 'ISO 8061 format'
但我想将它放入可以在 SQL Server 中使用的 DateTime。
直接转换为日期时间不起作用
,convert(datetime,PaymentXml.query('data(/PaymentSummary/SubmittedDate)')) as 'VarChar Format'
不允许从数据类型 xml 到日期时间的显式转换。
我可以把它转换成varchar
convert(varchar(150),PaymentXml.query('data(/PaymentSummary/SubmittedDate)')) as 'VarChar Format'
但无法在日期时间得到该结果。
,convert(datetime,convert(varchar(150),PaymentXml.query('data(/PaymentSummary/SubmittedDate)'))) as 'DateTime Format'
从字符串转换日期和/或时间时转换失败。
显然,我在 SQL Server 中使用 XML 已经 30 分钟了/我真的不知道我在做什么。
【问题讨论】:
-
在您的专栏中发布一个字符串示例会很有帮助。但简单搜索“sql server convert iso 8601 to datetime”会发现很多建议让你开始。
-
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
标签: sql sql-server xml