1、字符型轉成timestamp
select to_timestamp(loga006,'dd-MON-yyhh:mi:ss.ff AM') from loga_t;
2、timestamp轉成date型
select cast(to_timestamp(loga006,'dd-MON-yyhh:mi:ss.ff AM') as date) timestamp_to_date loga_t
3、date型轉成timestamp
select cast(sysdate as timestamp) date_to_timestamp from loga_t
4、獲取timestamp格式的系統時間
select systimestamp from loga_t
一、首先說下date和timestamp的不同吧。
大家知道,date類型能夠存儲月,年,日,世紀,時,分和秒,而經常的格式爲'MM/DD/YYYY HH24:MI:SS'或者'MM-DD-YYYY HH24:MM:SS'。
可以看到,date只能精確到秒,不能看到秒之內的時間,一般的時間計算足夠,但是對時間間隔等要求比較高的計算等date就有點力不從心了。
那麼爲了解決date類型粒度不夠的問題,ORACLE擴展出了timestamp時間戳類型,timestamp類型引入了小數秒的信息。
二、得到系統的date時間和timestamp時間
1、得到系統時間,返回成date類型,可如下:
SELECT SYSDATE FROM DUAL;
2、得到系統時間,返回成timestamp類型,可如下:
SELECT SYSTIMESTAMP FROM DUAL;
三、date類型和timestamp類型之間的轉換
1、date--》timestamp,示例如下:
select to_date(to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual
2、timestamp --》date,示例如下:
select to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual
或者使用CAST函數進行轉換也行,示例如下:
SELECT CAST(date1 AS TIMESTAMP) "Date" FROM t;
同理,date到timestamp,也可利用CAST函數進行轉換。