如何反序列化在T-SQL中使用FOR XML AUTO序列化的数据记录?

Mic*_*ski 5 xml sql t-sql sql-server serialization

在我的Microsoft SQL Server 2005数据库中,我的列数据WorkingDays如下:

<WorkingDays>
  <Day>2011-05-05</Day>
  <Day>2011-05-06</Day>
</WorkingDays>
Run Code Online (Sandbox Code Playgroud)

如何在T-SQL查询中反序列化它们以进行DateTime格式化?

在此输入图像描述

mar*_*c_s 4

尝试这样的事情:

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)
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出:

ID    Day
1     2011-05-05 00:00:00.000
1     2011-05-06 00:00:00.000
Run Code Online (Sandbox Code Playgroud)