2013-06-21 38 views
1

我想將dateformat yyyy-mm-ddThh:mm:ss.mmm轉換爲yyyy-mm-ddThh:mm:ss XML中沒有毫秒 現在我的格式是:2013-06-21T12:50:01.444dateformat與ISO801標準

我希望它在SQL Server中沒有毫秒

+0

?日期格式化功能因此而異(與XML支持一樣)。你可以添加更多的描述 - 我不確定你的開始和結束點是什麼。我認爲其中之一是XML(不知道是哪個),另一個是什麼?一列?一個變量?結果集? –

+0

你想從sql server中實現這個嗎?你想要查詢嗎? – Nithesh

+0

搜索「正則表達式替換」(假設XML只是文本):'\ d \ d \ d \ d- \ d \ d- \ d \ dT \ d \ d \:\ d \ d \ d \ d'或其變體'[0-9] {4}'(年份)。 Oracle擁有REGEXP_REPLACE。 –

回答

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)爲SQLType當您使用value()方法。

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

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

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

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

您正在使用什麼數據庫系統