在Oracle中沒有一個時間數據類型的概念。只有DATE和TIMESTAMP,它們都包含日期和時間元素。
您的檢索將您的時間列轉換爲DATE:TO_DATE(timestr,'hh24:mi:ss')
。 Oracle做我們要求它做的事情,所以它顯示一個日期。由於timestr
中沒有日期元素,它會爲我們分配一個:今天的日期。
您只會看到10/01/2015
,因爲您的客戶端的NLS設置被配置爲僅顯示日期元素。更改設置來顯示時間元素,在客戶端或通過如下改變會話:
SQL> select to_date('10:08:23', 'hh24:mi:ss') ts from dual
2/
TS
---------
01-OCT-15
SQL> alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS'
2/
Session altered.
SQL> select to_date('10:08:23', 'hh24:mi:ss') ts from dual
2/
TS
--------------------
01-OCT-2015 10:08:23
SQL>
如果你只是想看看你可以改變NLS設置的時間...
SQL> alter session set nls_date_format='HH24:MI:SS'
2/
Session altered.
SQL> select to_date('10:08:23', 'hh24:mi:ss') ts from dual
2/
TS
--------
10:08:23
SQL>
...但是,這會招人煩....
SQL> select sysdate from dual
2/
SYSDATE
--------
23:59:52
SQL>
那爲什麼不顯示列作爲一個字符串的所有無鑄的日期?
select timestr from table1;
來源
2015-10-15 06:53:44
APC