Я использую AOP в большой степени в моих приложениях C#. Я не огромный поклонник необходимости использовать Атрибуты, таким образом, я использовал замок DynamicProxy и Шиканье для применения аспектов во времени выполнения, не загрязняя мой код
Дата-время по умолчанию вызвано преобразованием пустой строки, которая равна «нулю», что дает 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)
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)')