【问题标题】:How to deserialize data records serialized with FOR XML AUTO in T-SQL?如何在 T-SQL 中反序列化使用 FOR XML AUTO 序列化的数据记录?
【发布时间】:2026-02-21 21:35:01
【问题描述】:
在我的 Microsoft SQL Server 2005 数据库中,WorkingDays 列中有数据,例如:
<WorkingDays>
<Day>2011-05-05</Day>
<Day>2011-05-06</Day>
</WorkingDays>
如何在 T-SQL 查询中将它们反序列化为DateTime 格式?
【问题讨论】:
标签:
sql
sql-server
xml
tsql
serialization
【解决方案1】:
试试这样的:
DECLARE @TEST TABLE(ID INT IDENTITY, XmlContent XML)
INSERT INTO @TEST(XmlContent) VALUES('<WorkingDays>
<Day>2011-05-05</Day>
<Day>2011-05-06</Day>
</WorkingDays>')
SELECT
ID,
WD.DAYS.value('(.)[1]', 'datetime') AS 'Day'
FROM
@TEST
CROSS APPLY
XmlContent.nodes('/WorkingDays/Day') AS WD(Days)
这给了我一个输出:
ID Day
1 2011-05-05 00:00:00.000
1 2011-05-06 00:00:00.000