2012-12-11 94 views
3

我期待在一些列中只存儲一個時間值,但我不確定哪些數據類型必須使用? 當前有TIMESTAMP,但是這似乎也存儲了日期,如果我試圖從比賽中存儲記錄的時間,它就沒用了。Oracle SQL時間數據類型

任何想法,我四處搜索,找不到我在找什麼。

謝謝您的閱讀!

+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

[間隔]的文檔(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)以供參考。 –

+0

我將如何去改變我的表中當前列的數據類型,以允許我將INTERVAL DAY存儲到第二個 – Max

+2

@Max - 表是否爲空?如果是這樣,您可以執行'ALTER TABLE'來修改該列的數據類型。否則,幾乎可以肯定需要添加具有適當數據類型的新列,移動數據(如何操作取決於當前數據類型),刪除舊列,如果需要,可以將新的柱。 –