1

我想在 XML 中将 dateformat 转换yyyy-mm-ddThh:mm:ss.mmmyyyy-mm-ddThh:mm:ss没有毫秒的时间现在我的格式是: 2013-06-21T12:50:01.444.

我希望它在 sql server 中没有毫秒

4

1 回答 1

0
-- Truncate datetime value to seconds in XML variable 
declare @XML xml

-- Create XML
select @XML =
  (
  select getdate() as value
  for xml path(''), type
  )

-- Show current value
select @XML

-- Remove three last characters using substring
set @XML.modify('replace value of (/value/text())[1] 
                 with substring((/value)[1], 1, 19)')

-- Show modified value
select @XML

替换 (XML DML)
子字符串函数 (XQuery)的值

如果您不想修改您的 XML,而只是在获取值时截断到秒,您可以在使用该方法char(19)时指定为 SQLType 。value()

select @XML.value('(/value/text())[1]', 'char(19)')

或者datetime2(0)如果您使用的是 SQL Server 2008 或更高版本。

select @XML.value('(/value/text())[1]', 'datetime2(0)')

value() 方法(xml 数据类型)
datetime2 (Transact-SQL)

于 2013-06-21T07:47:43.080 回答