oracle存储日期类型数据,Oracle基本数据类型存储格式浅析—日期类型(1)

Oracle基本数据类型存储格式浅析—日期类型(1)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

b64ca436e1eb390894e1640bbb396139.png

Oracle基本数据类型存储格式浅析(三)——日期类型     下面通过一个例子进行说明

SQL> create table test_date (date_col date);

表已创建

SQL> insert into test_date values (to_date( : : yyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (to_date( : : yyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ));

已创建 行

SQL> insert into test_date values (sysdate);

已创建 行

SQL> insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ));insert into test_date values (to_date( : : syyyy mm dd hh :mi:ss ))*ERROR 位于第 行:ORA : (全)年度值必须介于 和 + 之间 且不为

SQL> insert into test_date values (to_date( : : yyyy mm dd hh :mi:ss ));insert into test_date values (to_date( : : yyyy mm dd hh :mi:ss ))*ERROR 位于第 行:ORA : (全)年度值必须介于 和 + 之间 且不为

SQL> col dump_date format a SQL> select to_char(date_col syyyy mm dd hh :mi:ss ) dump(date_col) dump_date from test_date;

TO_CHAR(DATE_COL SY DUMP_DATE : : Typ= Len= : : : Typ= Len= : : : Typ= Len= : : : Typ= Len= : : : Typ= Len= : : : Typ= Len= : : : Typ= Len= :

已选择 行

通过最后两条语句已经可以看出Oracle的DATE类型的取值范围是公元前 年 月 日至公元 年 月 日 而且根据日期的特定 要不然是公元 年 要不然是公元前 年 不会出现 年的情况

日期类型长度是 个字节分别表示世纪 年 月 日 时 分和秒

由于不会出现 的情况 月和日都是按照原值存储的 月的范围是 ~ 日的范围是 ~

由于时 分 秒都会出现 的情况 因此存储时采用原值加 的方式 时保存为 时保存为 时保存为 分和秒的情况与小时类似 小时的范围是 ~ 在数据库中以 ~ 保存 分和秒的范围都是 ~ 在数据库中以 ~ 保存

年和世纪的情况相对比较复杂 可分为公元前和公元后两种情况 由于最小的世纪的值是 (公元前 年) 最大值是 (公元 年) 为了避免负数的产生 oracle把世纪加 保存在数据库中 公元 年 世纪保存为 公元 年 世纪保存为 公元前 年 世纪保存为 ( +( )) 公元前 年 世纪保存为 ( +( ))

注意 对于公元前 年 虽然已经是公元前了 但是表示世纪的前两位的值仍然是 因此 这时的保存的世纪的值仍然是 世纪的范围是 ~ 保存的值是 ~

年的保存与世纪的保存方式类似 也把年的值加上 进行保存 对于公元 年 年保持为 公元 年保存为 公元 年保存为 公元 年保存为 公元前 年 保存为 ( +( )) 公元前 年 保存为 ( +( )) 公元前 年保存为 ( +( )) 对于公元前的年 保存的值总是小于等于 对于公元后的年 保存的值总是大于等于 年的范围是 ~ 保存的值是 ~ lishixinzhi/Article/program/Oracle/201311/18156

分页:123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值