oracle中以日期为单位分配的最大存储空间

akz*_*ere 0 oracle plsql

我已经搜索了这个,但发现没有什么比回答我的问题更有意义了.我的疑问就像我们知道varchar2数据类型的最大大小是32767字节所以在类似的行上分配了多少空间来存储日期数据类型的值.它被视为varchar2数据类型吗?这样大小将取决于字符数?或者它是不同的东西.

谢谢

Ale*_*ole 5

从文档:

数据库在内部将日期存储为数字.日期存储在每个7字节的固定长度字段中,对应于世纪,年,月,日,小时,分钟和秒.

所以日期总是7个字节.时间戳更长(11个字节)以保持额外的精度,并且时区增加更多(到13个字节).你可以看到,如果你dump有一个价值:

create table t42 (d date, t timestamp);
insert into t42 (d, t) values (sysdate, systimestamp);

column dumpd format a40
column dumpt format a60
select dump(d) as dumpd, dump(t)  as dumpt
from t42;

DUMPD                                    DUMPT                                                      
---------------------------------------- ------------------------------------------------------------
Typ=12 Len=7: 120,114,3,21,12,30,11      Typ=180 Len=11: 120,114,3,21,12,30,11,17,32,145,56           
Run Code Online (Sandbox Code Playgroud)