我期待在一些列中只存储一个时间值,但我不确定哪些数据类型必须使用? 当前有TIMESTAMP,但是这似乎也存储了日期,如果我试图从比赛中存储记录的时间,它就没用了。Oracle SQL时间数据类型
任何想法,我四处搜索,找不到我在找什么。
谢谢您的阅读!
我期待在一些列中只存储一个时间值,但我不确定哪些数据类型必须使用? 当前有TIMESTAMP,但是这似乎也存储了日期,如果我试图从比赛中存储记录的时间,它就没用了。Oracle SQL时间数据类型
任何想法,我四处搜索,找不到我在找什么。
谢谢您的阅读!
比赛的经过时间应存储在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
[间隔]的文档(http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#sthref167),['numtodsinterval()'](http://docs.oracle。 com/cd/E11882_01/server.112/e26088/functions117.htm)和['to_dsinterval()'](http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions204.htm)以供参考。 –
我将如何去改变我的表中当前列的数据类型,以允许我将INTERVAL DAY存储到第二个 – Max
@Max - 表是否为空?如果是这样,您可以执行'ALTER TABLE'来修改该列的数据类型。否则,几乎可以肯定需要添加具有适当数据类型的新列,移动数据(如何操作取决于当前数据类型),删除旧列,如果需要,可以将新的柱。 –
TIMESTAMP
和DATETIME
不适合这里。你试图存储的不是单点在时间上,而是时间间隔的时间。 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
你的权利也是如此!非常感谢您的意见! – Max
你将如何使用这些数据,你需要将有助于提供更好的答案是什么精密的更多信息。 –