添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
低调的爆米花  ·  Docbook ...·  2 周前    · 
奔放的萝卜  ·  Support Community·  3 月前    · 
威武的香菇  ·  OSError: [WinError 6] ...·  7 月前    · 
仗义的冲锋衣  ·  Excel VBA ...·  1 年前    · 

其中T1 的时间格式是我们平常比较容易看到的。但是也有小部分的时候会遇到T的时间格式,后面带上时区的时候,就会在取Datetime的时候直接转换成0时区的时间,所以

DECLARE @Doc XML='
    <T>2018-02-22+08:00</T>
    <T1>2018-02-22</T1>
SELECT @Doc.value('(R/T)[1]','DateTime') ,        
        @Doc.value('(R/T1)[1]','DateTime')    
2018-02-21 16:00:00.000 
2018-02-22 00:00:00.000

这时候如果需要将T和T1 都转成一致的DateTime的格式的话,可以参考官方文档里面的一样

https://docs.microsoft.com/zh-cn/sql/t-sql/functions/cast-and-convert-transact-sql#date-and-time-styles

里面提到这里可以转换成DateTimeOffset 这种格式,然后再转换成DateTime的格式,即可完成这个操作

最终就是2种都可以转成同样的时间格式了。

DECLARE @Doc XML='
    <T>2018-02-22+08:00</T>
    <T1>2018-02-22</T1>
SELECT CONVERT(DATETIME,@Doc.value('(R/T)[1]','DateTimeOffset')),
       CONVERT(DATETIME,@Doc.value('(R/T1)[1]','DateTimeOffset'))
2018-02-22 00:00:00.000 
2018-02-22 00:00:00.000

以为这种格式我们平时比较少用到,我也是偶尔遇到才发现,今天和大家分享一下~希望对大家有帮助

最后祝~新年快乐~工作顺利