zoukankan      html  css  js  c++  java
  • Oracle 时区(TimeZone ) DUMP信息

     从DUMP信息构造时间

    建立表,包含不同类型的三个column

    create table tstz(ts timestamp, tstz timestamp with time zone, tsltz timestamp with local time zone);

    insertinto tstz values(systimestamp,systimestamp,systimestamp);

    commit;


    SQL> select t.tstz,dump(t.tstz), dump(t.tstz,16) from tstz t;  --显示结果格式进行了重新排版

    --------------------------------------------------------------------------------------------------

    TSTZ                           2008/03/29 10:14:10.774754 +08:00                                                         

    --------------------------------------------------------------------------------------------------

    DUMP(T.TSTZ)              Typ=181 Len=13: 120,108,3,29,3,15,11,46,45,206,208,28,60                                   

    --------------------------------------------------------------------------------------------------

    DUMP(T.TSTZ,16)         Typ=181 Len=13: 78,6c,3,1d,3,f,b,2e,2d,ce,d0,1c,3c

                                             

      各部分的解析结果是

    120,108年分,减 100得到20 08

    3,29日期,直接得 到03-29

    3,15,11时间,减1得 到 02:14:10 , 这里是GMT的时间,所以还要加上时区部分

    2e,2d,ce,d0 Fractional Seconds部分,用HEX进行运算  to_number('2e2dced0','xxxxxxxx') =  774754000

    1c时区小时部 分,0时区用0x14表示, 所以0x1C 表示 0x1C - 0x14 = 0x08,是+8

    3c时区分钟部 分,60分用0x3C表示, 西半区和东半区分别是0x1E和0x5A

     换算的结果是 2008-03-29 02:14:10  774754000 +00:00,换成+08:00就是 2008-03-29 10:14:10  774754000 +08:00

    作者:wait4friend
    Weibo:@wait4friend
    Twitter:@wait4friend
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    通俗理解乐观锁和悲观锁
    面试系列-HashMap和Hashtable的区别
    单点登录原理与实现
    CodeReview常见代码问题
    漫画:什么是冒泡排序?
    Redis 和 Memcached 的区别
    动态图文了解 8 大排序算法
    分布式系统常见的事务处理机制
    面试系列-String,StringBuffer,StringBuilder三者区别
    面试系列-高并发之synchronized
  • 原文地址:https://www.cnblogs.com/wait4friend/p/2345346.html
Copyright © 2011-2022 走看看