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

本文详细解析了SQL中日期在内存和文件中的存储格式,包括日期的长度、具体存储方式及转换过程。
部署运行你感兴趣的模型镜像

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23132642/viewspace-718872/

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值