【发布时间】:2017-06-28 19:08:04
【问题描述】:
您好,我正在 SQL 服务器中使用 XML,并尝试对 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 的情况下返回相同的结果。
请提出建议。 提前致谢 饶
【问题讨论】:
-
StartDate 的数据类型是什么?
-
现在是 SMALLDATETIME。我也会更新问题。
-
默认返回<_x0023_temp startdate="2017-06-05T09:00:00">
-
只有.00,我错过了什么吗?
-
我的问题是 XML 修改函数在末尾添加了 .000。
标签: sql-server xml sql-server-2012 smalldatetime xml.modify