我期待在一些列中只存儲一個時間值,但我不確定哪些數據類型必須使用? 當前有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
你將如何使用這些數據,你需要將有助於提供更好的答案是什麼精密的更多信息。 –