日期格式符合ISO 801标准

时间:2013-06-21 06:25:25

标签: sql sql-server xml

我想将dateformat yyyy-mm-ddThh:mm:ss.mmm转换为yyyy-mm-ddThh:mm:ss,而XML中没有毫秒 目前我的格式为:2013-06-21T12:50:01.444

我想在sql server中没有毫秒

1 个答案:

答案 0 :(得分: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

replace value of (XML DML)
substring Function (XQuery)

如果您不想修改XML但仅在获取值时截断为秒,则可以在使用char(19)方法时将value()指定为SQLType。

select @XML.value('(/value/text())[1]', 'char(19)')
如果您使用的是SQL Server 2008或更高版本,请

datetime2(0)

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

value() Method (xml Data Type)
datetime2 (Transact-SQL)