gpt4 book ai didi

sql - 如何转换 SQL Server XML 类型值 (xsi :nil) of DateTime to null

转载 作者:数据小太阳 更新时间:2023-10-29 01:47:09 25 4
gpt4 key购买 nike

有没有一种方法可以查询 SQL Server XML 类型,以便对于具有 xsi:nil="true" 的元素,返回 null 而不是默认日期时间值,即 1900-01 -01 00:00:00.000?

这是一段代码

declare @data xml
set @data =
'<DOD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true" />'
select Value1 = @data.value('/DOD[1]', 'datetime'),
Value2 = IsNull(@data.value('/DOD[1]', 'datetime'), 'NOT NULL?'),
Value3 = nullif(@data.value('/DOD[1]', 'datetime'), '1900-01-01')

Value1 和 Value2 都返回 1900-01-01 00:00:00.000。有没有办法返回一个空值呢?不使用 nullif

最佳答案

“默认”日期时间是由强制转换为“零”的空字符串引起的,该字符串给出 1900 年 1 月 1 日。

所以:整理字符串,然后 CAST

declare @data xml

set @data =
'<DOD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true" />'

select
Value1 = CAST(NULLIF(@data.value('/DOD[1]', 'varchar(30)'), '') AS datetime)

关于sql - 如何转换 SQL Server XML 类型值 (xsi :nil) of DateTime to null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1202496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com