哪个数据类型适合oracle中的时间范围?

时间:2015-10-30 12:19:09

标签: sql oracle datetime

我正在尝试为主题公园的场景设置一个数据库,其中一个标准是开放时间 - 我正在尝试立即编写我的创建表语句但是给出一个最好的数据类型是什么在这种情况下的时间范围?

1 个答案:

答案 0 :(得分:2)

以下任一项:

  • DATE
  • 时间戳

时间戳是DATE数据类型的扩展。它可以将小数秒保持在0到9位小数之间的精度,默认为6。

创建两列:

  • opening_timestamp
  • closing_timestamp

每当您需要差异时,您只需要减去列。两个日期之间的差异是天数。

例如,请参阅此 SQL Fiddle

create table t(id number, opening_tm date, closing_tm date);
insert into t values(1, sysdate - 4/24, sysdate + 4/24);
insert into t values(2, sysdate - 1, sysdate + 1);
commit;

select id, 
       to_char(opening_tm, 'YYYY-MM-DD HH24:MI:SS') opening_time, 
       to_char(closing_tm, 'YYYY-MM-DD HH24:MI:SS') closing_tm,
       closing_tm - opening_tm interval_in_days,
       (closing_tm - opening_tm)*24 interval_in_hours
from t;