我有下面的代码,该代码从SQL Server中的XML字符串中选择一个日期值。字符串值以格式返回,在ddmmyy
将其datetime
保存到表中之前,我需要将其转换为T-SQL类型。
SELECT TOP 1
list.n.value('(DOB/@value)[1]', 'datetime') AS 'DOB'
FROM
@ResultXML.nodes('/Variables') AS list(n)
XML档案:
<Variables>
<DOB>111290</DOB>
</Variables>
您可以这样尝试:
DECLARE @XML XML=
'<Variables>
<DOB>111290</DOB>
</Variables>';
SELECT CONVERT(DATETIME,STUFF(STUFF(@XML.value('(/Variables/DOB)[1]','varchar(max)'),3,0,'/'),6,0,'/'),3)
首先,您使用两次而不是STUFF
来获取,11/12/90
而不是111290
使用3
来将其转换为日期时间(或任何其他合适的格式:.
用于德语,-
用于英国...)。CAST and CONVERT
最好的办法是正确存储日期和时间值。在XML中,这应该是ISO8601,这意味着yyyy-MM-dd
或具有ISO8601的yyyy-MM-ddThh:mm:ss
更多详细信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句