Изменение XML - SMALLDATETIME

Привет я работаю с XML на сервере SQL и пытаюсь использовать функцию изменения переменной SMALLDATETIME, но она не дает мне желаемого результата.

    DECLARE @Shift_StartDate SMALLDATETIME = '2017-06-05 09:00:00';
DECLARE @Shift_EndDate SMALLDATETIME = '2017-06-05 09:30:00';
DECLARE @x XML = '<dbo.tblXXXX StartDate="" EndDate=""  />'
SET @x.modify('replace value of (/*[1]/@StartDate) with sql:variable("@Shift_StartDate")')
SET @x.modify('replace value of (/*[1]/@EndDate) with sql:variable("@Shift_EndDate")')

SELECT @X

Выход есть. В конце добавляются дополнительные ".000". Как я могу избавиться от них.

<dbo.tblXXXX StartDate="2017-06-05T09:00:00.000" EndDate="2017-06-05T09:30:00.000" />

Я хочу, чтобы приведенный выше вывод понравился, как показано ниже, так как это то, что возвращается при выполнении запроса ниже

<dbo.tblXXXX StartDate="2017-06-05T09:00:00" EndDate="2017-06-05T09:30:00" />

DECLARE @ActualXml XML;

SET @ActualXml = (SELECT 
                     [StartDate], 
                     [EndDate]
                     FROM [dbo].[tblXXXX]
                     WHERE UniqueId = 8124X
                     FOR XML AUTO)
SELECT @ActualXml

Тип данных [StartDate] и [EndDate] равен 'SMALLDATETIME'

Я хочу, чтобы функция изменения XML возвращала тот же результат без.000.

Пожалуйста, предложите. Заранее спасибо Рао

1 ответ

Вы можете привести значение к xs:string и использовать XQuery's substring отрезать строку:

DECLARE @Shift_StartDate SMALLDATETIME = '2017-06-05 09:00:00';
DECLARE @Shift_EndDate SMALLDATETIME = '2017-06-05 09:30:00';
DECLARE @x XML = '<dbo.tblXXXX StartDate="" EndDate=""  />'
SET @x.modify('replace value of (/*[1]/@StartDate) with substring(xs:string(sql:variable("@Shift_StartDate")),1,19)')
SET @x.modify('replace value of (/*[1]/@EndDate) with sql:variable("@Shift_EndDate")')

SELECT @X

Результат

<dbo.tblXXXX StartDate="2017-05-06T09:00:00" EndDate="2017-05-06T09:30:00.000" />

StartDate без .000, в то время как EndDate без изменений

Другие вопросы по тегам