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

fvi*_*tal 25 sql oracle time

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

01/10/2009 22:10:39
Run Code Online (Sandbox Code Playgroud)

但只是时间

22:10:39
Run Code Online (Sandbox Code Playgroud)

我认为节省磁盘空间(我有200万行)或提供更快的处理.

Dav*_*dge 16

您可以尝试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;
Run Code Online (Sandbox Code Playgroud)

但是11个字节.


kur*_*sch 6

你最好的选择可能是将"午夜以来的秒数"存储为数字字段.

SELECT to_char( SYSDATE, 'SSSSS' ) FROM dual;
Run Code Online (Sandbox Code Playgroud)