Присвойте значение xml локальной переменной и сравните с датой. - PullRequest
0 голосов
/ 21 сентября 2018

Можно ли объявить значение узла как локальную переменную, такую ​​как

DECLARE @xVal1 <type>;
SET @xVal1 = '/*:OrderWithItems/*:Order/*:ShipServiceLevel)[1]';

, а затем обратиться к @ xVal1 ниже в условии WHERE вместо полного пути xml.

 SELECT o.nOrderId AS 'OrderId',
    o.Source,
    o.Subsource,
    lc.cCountry,
    CAST(ObjectXML as xml).value('(/*:OrderWithItems/*:Order/*:ShipServiceLevel)[1]', 'NVARCHAR(max)') AS 'ServiceLevel',
    CAST(ObjectXML as xml).value('(/*:OrderWithItems/*:Order/*:LatestDeliveryDate)[1]', 'datetime') AS 'LatestDeliveryDate'
    FROM [OrderXML] x
    INNER JOIN [Open_Order] o ON o.pkOrderId = x.fkOrderId
    INNER JOIN [ListCountries] lc ON lc.pkCountryId = o.fkCountryId
    WHERE 
    o.Source = 'AMAZON' AND
    o.Subsource IN ('Trimming Shop', 'Wedding Decor - UK') AND
    lc.cCountry = 'United Kingdom' AND
    x.type = 'Default' AND
    CAST(ObjectXML as xml).value('(/*:OrderWithItems/*:Order/*:ShipServiceLevel)[1]', 'NVARCHAR(max)') = 'UK Next' AND
    CAST(ObjectXML as xml).value('(/*:OrderWithItems/*:Order/*:LatestDeliveryDate)[1]', 'datetime') = DATEADD(day, 1, GETDATE())

Вот набор результатов:

Результат запроса

Я хочу преобразовать значение LatestDeliveryDate в формате даты ДД-ММ-ГГГГ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...