Oracle中date和timestamp之間的轉換

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函數進行轉換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章