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

标签 sql sql-server xml tsql serialization

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

<WorkingDays>
  <Day>2011-05-05</Day>
  <Day>2011-05-06</Day>
</WorkingDays>

如何在 T-SQL 查询中将它们反序列化为 DateTime 格式?

enter image description here

最佳答案

尝试这样的事情:

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

关于sql - 如何反序列化在 T-SQL 中使用 FOR XML AUTO 序列化的数据记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150951/

相关文章:

php - 从3个表中按时间对mysql结果进行排序

mysql - 等效于 MySQL ON DUPLICATE KEY UPDATE in Sql Server

sql-server - 为什么使用 JOIN 而不是内部查询

c# - 数据库表在不同数据库类型上的一致性哈希

SQL Server 安装/配置错误

sql-server - xquery 返回元素名称

java - 如何删除 Simpleframework XML 上的元素列表 null

SQL 数据库 View

带有最新记录的 SQL 子查询

xml - XSD - 如何描述第一个元素必须首先出现在序列中的无序元素类型集?