zoukankan      html  css  js  c++  java
  • 使用DateTimeOffset 对xml中的日期时间格式时区进行处理

    在日常使用中难免会与XML打交道,其中一个常用的格式就是日期了。

    交互的时候通常有下面2种方式

    DECLARE @Doc XML='
    <R>
       <T>2018-02-22+08:00</T> <T1>2018-02-22</T1> </R>
    '

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

    DECLARE @Doc XML='
    <R>
        <T>2018-02-22+08:00</T>
        <T1>2018-02-22</T1>
    </R>
    '
    
    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='
    <R>
        <T>2018-02-22+08:00</T>
        <T1>2018-02-22</T1>
    </R>
    '
    
    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

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

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

  • 相关阅读:
    CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset
    用php实现一个简单的链式操作
    关于php语言的使用!
    NSCalendar NSDateComponents
    IOS 谓词
    NSDate
    IOS asc码替换
    帝国CMS内容模板IF判断
    帝国CMS列表模板页面内容截取
    ios 获取崩溃日志
  • 原文地址:https://www.cnblogs.com/Gin-23333/p/8458346.html
Copyright © 2011-2022 走看看