Oracle日期类型占用的空间
Posted 小胡的技术之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle日期类型占用的空间相关的知识,希望对你有一定的参考价值。
前言
今天偶然间发现了一篇文章,Oracle中的日期类型的字段,占用了多少空间?
这个我还真回到不上来。。带着好奇,自己照着原文实践了一下
简介
oracle中常用的日期类型,有2种
1.DATE类型 精确到秒
2.TIMESTAMP类型,精确到秒的小数点后9位,到毫秒
实践
创建一张测试表,含有DATE和TIMESTAMP两种类型
插入测试数据:
根据数据库字典user_tab_cols看,DATE类型的长度是7bytes,TIMESTAMP类型的长度是11bytes
使用dump函数,DATE类型的长度也是7bytes
TIMESTAMP类型的长度len也是11bytes,注意第二条记录,由于使用的是to_date,实际存储的是DATE类型,并不是时间戳TIMESTAMP类型的值
使用vsize函数,得出一样的结论
在看一下SYSDATE函数,它应该也是一个DATE类型的值,但是我们注意此处len长度就是8bytes,不是DATE类型7bytes,而且typ值是13,DATE类型的typ值是12,TIMESTMP类型的Typ值是180,说明这是不同的类型
typ=13,是一种外置的DATE数据类型,它是一种内部C结构体,依赖C编译器如何表示结构,长度会有所不同。
原文:bisal的个人杂货铺(微信公号)
以上是关于Oracle日期类型占用的空间的主要内容,如果未能解决你的问题,请参考以下文章