ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 日期在内存中的存储格式及物理存储格式

日期在内存中的存储格式及物理存储格式

原创 Linux操作系统 作者:avantar 时间:2012-03-18 15:25:02 0 删除 编辑

SQL> col dump_date form. a35
SQL> col real_date form. a35
SQL> select dump(sysdate) dump_date,
  2        to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') real_date
  3    from dual
  4  where rownum=1;

DUMP_DATE                           REAL_DATE
----------------------------------- -----------------------------------
Typ=13 Len=8: 220,7,3,18,15,8,54,0  2012-03-18 15:08:54

 

日期在内存中的保存形式:

长度:8字节  1-2: year 3:month 4 :day 5:hour 6:minute 7:second 8:

由于是LITTLE ENDIAN,所以220,7表示7,220,转化为0x7DC,即2012

后面的月日时分秒等都是以与实际值相同的形式保存的。

 

上面说的是日期在内存中的保存格式,下面看下日期在文件中的保存格式:

SQL> create table d (a date);

表已创建。

SQL> insert into d values(sysdate);

已创建 1 行。

SQL> commit
  2  ;

提交完成。

SQL> col dump_date form. a35
SQL> col real_date form. a35
SQL> select dump(a) dump_date,
  2        to_char(a,'yyyy-mm-dd hh24:mi:ss') real_date
  3    from d
  4  where rownum=1;

DUMP_DATE                           REAL_DATE
----------------------------------- -----------------------------------
Typ=12 Len=7: 120,112,3,18,16,10,59 2012-03-18 15:09:58

长度为7。

120-100=20  --年份前2位(20**年)

112-100=12  --年份后2位(**12年)   这2个BYTE长度的值合起来就表示2012年

3                      --月

18                    --日

16-1=15         --时

10-1=9           --分

59-1=59         --秒

参考:DSI302(对ORACLE中各类型在数据库中的存储格式做了详细的说明)

参考:http://www.itpub.net/thread-211094-1-1.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23132642/viewspace-718872/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-03-17

  • 博文量
    3
  • 访问量
    3827