Oracle SQL时间数据类型

Max*_*Max 3 sql oracle

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

任何想法,我已经四处寻找,找不到我想要的东西.

谢谢你的阅读!

Jus*_*ave 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
Run Code Online (Sandbox Code Playgroud)

  • @Max - 表是空的吗?如果是,您可以执行"ALTER TABLE"来修改列的数据类型.否则,您几乎肯定需要添加具有适当数据类型的新列,移动数据(如何执行此操作取决于当前数据类型),删除旧列,如果需要,还可以重命名新列柱. (2认同)