Oracle SQL时间数据类型

时间:2012-12-11 16:03:22

标签: sql oracle

我希望在一些列中存储一个时间值,但我不确定我必须使用哪种数据类型? 目前有TIMESTAMP,但这似乎也存储日期,如果我试图存储比赛记录的时间,则无用。

任何想法,我都在四处寻找,找不到我想要的东西。

感谢您阅读!

2 个答案:

答案 0 :(得分:6)

比赛的经过时间应存储在INTERVAL DAY TO SECOND中。

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

答案 1 :(得分:3)

TIMESTAMPDATETIME不适合此处。您要存储的内容不是及时的单点,而是时间间隔。 Oracle 9i及更高版本支持此类间隔。尝试使用INTERVAL DAY TO SECOND

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

参考:http://www.techrepublic.com/article/master-oracles-time-interval-datatypes/6085801