Как преобразовать SQL Server, XML вводят значение (xsi:nil) DateTime к пустому указателю

Я использую AOP в большой степени в моих приложениях C#. Я не огромный поклонник необходимости использовать Атрибуты, таким образом, я использовал замок DynamicProxy и Шиканье для применения аспектов во времени выполнения, не загрязняя мой код

7
задан Joel Coehoorn 29 July 2009 в 19:28
поделиться

2 ответа

Дата-время по умолчанию вызвано преобразованием пустой строки, которая равна «нулю», что дает 01 января 1900.

Итак: очистите строку, затем 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)
10
ответ дан 6 December 2019 в 23:11
поделиться

easy:

declare @data xml

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

select
    Value1 = @data.value('(/DOD/text())[1]', 'varchar(30)')
1
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: