为了账号安全,请及时绑定邮箱和手机立即绑定

如何只存储时间;不是日期和时间?

/ 猿问

如何只存储时间;不是日期和时间?

梵蒂冈之花 2019-12-03 16:14:19

在一个字段中,我不需要存储日期时间对,即标准的Oracle日期。


01/10/2009 22:10:39

但是只有时间


22:10:39

我认为可以节省磁盘空间(我有200万行)或提供更快的处理速度。


查看完整描述

3 回答

?
森栏

您可以尝试INTERVAL DAY TO SECOND数据类型,但它不会为您节省任何磁盘空间...尽管它非常适合此目的。


create table t1 (time_of_day interval day (0) to second(0));


insert into t1 values (TO_DSINTERVAL('0 23:59:59'));


select date '2009-05-13'+time_of_day

from   t1;

虽然11个字节。


查看完整回答
反对 回复 2019-12-03
?
慕运维8079593

您可以像这样从字符串中提取日期中的时间:


to_char(sysdate,'HH.MI.SS')

但是没有唯一的时间数据类型可以帮助您节省空间。


查看完整回答
反对 回复 2019-12-03
?
茅侃侃

您将节省几Mb的磁盘空间(如今已无用),并且性能几乎没有提高。

您可以NUMBER按照建议使用类型列来存储自午夜以来的秒数,只是不要忘记约束。
(您可能会NUMBER(5, 0)根据存储的值使用1-3个字节,而不是一DATE列使用7个字节的常量)


查看完整回答
反对 回复 2019-12-03

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信