Oracle SQL时间数据类型

Oracle SQL时间数据类型,sql,oracle,Sql,Oracle,我希望在许多列中只存储一个时间值,但我不确定必须使用什么数据类型? 目前有时间戳,但它似乎也存储了日期,如果我试图存储比赛记录的时间,它是无用的 任何想法,我都在四处搜索,找不到我想要的 谢谢你的阅读 比赛经过的时间应以天到秒的间隔存储 SQL> create table runner( 2 runner_id number primary key, 3 runner_name varchar2(100), 4 runner_time interval day

我希望在许多列中只存储一个时间值,但我不确定必须使用什么数据类型? 目前有时间戳,但它似乎也存储了日期,如果我试图存储比赛记录的时间,它是无用的

任何想法,我都在四处搜索,找不到我想要的


谢谢你的阅读

比赛经过的时间应以
天到秒的间隔存储

SQL> create table runner(
  2    runner_id number primary key,
  3    runner_name varchar2(100),
  4    runner_time interval day to second
  5  );

Table created.

SQL> insert into runner
  2    values( 1, 'Justin', numtodsinterval( 250, 'second' ) );

1 row created.

SQL> select *
  2    from runner;

 RUNNER_ID RUNNER_NAME          RUNNER_TIME
---------- -------------------- ------------------------------
         1 Justin               +00 00:04:10.000000

TIMESTAMP
DATETIME
在这里不合适。您尝试存储的不是单个时间点,而是一段时间间隔。Oracle 9i及更高版本支持此类间隔。尝试使用
从天到秒的间隔时间

INTERVAL '3 12:30:06.7' DAY TO SECOND(1)

参考资料:

有关如何使用此数据以及所需精度的更多信息将有助于提供更好的答案。文档用于和用于参考。我将如何更改表中当前列的数据类型,以允许我将间隔日存储到SECOND@Max-桌子空了吗?如果是,您可以执行
altertable
来修改列的数据类型。否则,您几乎肯定需要添加一个具有正确数据类型的新列,移动数据(如何移动取决于当前数据类型),删除旧列,如果需要,重命名新列。感谢您的帮助,工作顺利!是否可以对两列(从间隔日到第二个数据类型)执行求和查询?如果是,我该怎么做?似乎找不到任何对我有意义的东西。