在一个字段中,我不需要存储日期时间对,即标准的Oracle日期。01/10/2009 22:10:39但是只有时间22:10:39我认为可以节省磁盘空间(我有200万行)或提供更快的处理速度。
3 回答
森栏
TA贡献1810条经验 获得超5个赞
您可以尝试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个字节。
慕运维8079593
TA贡献1876条经验 获得超5个赞
您可以像这样从字符串中提取日期中的时间:
to_char(sysdate,'HH.MI.SS')
但是没有唯一的时间数据类型可以帮助您节省空间。
茅侃侃
TA贡献1842条经验 获得超21个赞
您将节省几Mb的磁盘空间(如今已无用),并且性能几乎没有提高。
您可以NUMBER
按照建议使用类型列来存储自午夜以来的秒数,只是不要忘记约束。
(您可能会NUMBER(5, 0)
根据存储的值使用1-3个字节,而不是一DATE
列使用7个字节的常量)
添加回答
举报
0/150
提交
取消