首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改XML - SMALLDATETIME

修改XML - SMALLDATETIME
EN

Stack Overflow用户
提问于 2017-06-29 03:08:04
回答 1查看 125关注 0票数 0

您好,我正在SQL server中使用XML,并试图对SMALLDATETIME变量使用modify函数,但它没有给出我想要的结果。

代码语言:javascript
复制
    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‘。我怎么才能摆脱他们。

代码语言:javascript
复制
<dbo.tblXXXX StartDate="2017-06-05T09:00:00.000" EndDate="2017-06-05T09:30:00.000" />

我希望上面的输出如下所示,因为这是我运行以下查询时返回的结果

代码语言:javascript
复制
<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的DataType是'SMALLDATETIME‘

我希望XML modify函数在不使用.000的情况下返回相同的结果。

请提个建议。先谢谢你,拉奥

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 15:37:34

您可以将值强制转换为xs:string,并使用XQuery的substring来截断字符串:

代码语言:javascript
复制
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

结果

代码语言:javascript
复制
<dbo.tblXXXX StartDate="2017-05-06T09:00:00" EndDate="2017-05-06T09:30:00.000" />

StartDate没有.000,而EndDate没有变化

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44810679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档