Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 哪种数据类型适用于oracle中的某个时间范围?_Sql_Oracle_Datetime - Fatal编程技术网

Sql 哪种数据类型适用于oracle中的某个时间范围?

Sql 哪种数据类型适用于oracle中的某个时间范围?,sql,oracle,datetime,Sql,Oracle,Datetime,我正在尝试为主题公园的场景建立一个数据库,其中一个标准是开放时间-我正在尝试编写我的create table语句,但在这种情况下,给出时间范围的最佳数据类型是什么?以下任一项: 日期 时间戳 时间戳是日期数据类型的扩展。它可以保存一秒的分数,精度在0到9位小数之间,默认值为6 创建两列: 打开时间戳 关闭\u时间戳 无论何时需要差分,只需减去列。两个日期之间的差异是天数 例如,请参见此 create table t(id number, opening_tm date, closing_

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

以下任一项:

  • 日期
  • 时间戳
时间戳是日期数据类型的扩展。它可以保存一秒的分数,精度在0到9位小数之间,默认值为6

创建两列:

  • 打开时间戳
  • 关闭\u时间戳
无论何时需要差分,只需减去列。两个日期之间的差异是天数

例如,请参见此

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;

可能有两列,一列为开始时间,一列为结束时间。如果你想减去这两列,你需要确保所有时间都属于同一天,不是吗?@lvaroG.Vicario不,为什么?天数之间的差异是天数。你只需要知道将天数转换为小时的数学公式就可以了。除非表格中有季节中的每一天,否则你需要一个“标准”日来记录,并带有一个标称日期;或者,根据需要,一周中的每一天可能有一个。可能有足够多的变化(特殊事件等),每天都会有一排。(但是日期数据类型和两列仍然是要走的路,这是问题的关键,所以我有点离题了…)我假设表将有一个主键,或者某个列可以区分行。在sql FIDLE中,我将一个前导列作为
ID