Oracle 時間戳與日期的轉換

2021-09-06 20:59:59 字數 2487 閱讀 3916

1. to_char()

將時間日期按照指定的格式輸出,得到的是字串,而非date型別。

select sysdate,to_char(sysdate,

'yyyy-mm-dd'

)from dual;

select sysdate,to_char(sysdate,

'yyyy/mm/dd'

)from dual;

select sysdate,to_char(sysdate,

'yyyymmdd'

)from dual;

select sysdate,to_char(sysdate,

'yyyymmdd hh24:mi:ss'

)from dual;

查詢結果

2018-12-29 13:59:50         2018-12-29

2018-12-29 13:59:50 2018/12/29

2018-12-29 13:59:50 20181229

2018-12-29 13:59:50 20181229 13:59:50

也可以用to_char()得到單獨的年月日時分秒的字串

select sysdate,to_char(sysdate,

'yyyy'

)from dual;

select sysdate,to_char(sysdate,

'mm'

)from dual;

select sysdate,to_char(sysdate,

'hh24'

)from dual;

select sysdate,to_char(sysdate,

'mi'

)from dual;

2018-12-29 13:59:50         2018

2018-12-29 13:59:50 12

2018-12-29 13:59:50 13

2018-12-29 13:04:50 04

因為結果是字串,所以0不能省略,特別在where語句中,

where to_char(sysdate,'mi') = 『04』
0省略了就查不到資料。

2. to_date()

將字串轉換為具體指定的時間日期格式

select sysdate,to_date(

'20190103'

,'yyyymmdd'

)from dual;

select sysdate,to_date(

'20190103'

,'yyyy-mm-dd'

)from dual;

select sysdate,to_date(

'20190103'

,'yyyy/mm/dd'

)from dual;

select sysdate,to_date(

'20190103'

,'yyyy-mm-dd hh24:mi:ss'

)from dual;

查詢結果

2019/01/03 17:20:27	2019/01/03

2019/01/03 17:20:27 2019/01/03

2019/01/03 17:20:27 2019/01/03

2019/01/03 17:20:27 2019/01/03

注:

to_date()得到的日期格式是和系統的日期格式保持一致;

得到的時間為當天的 00 :00:00。

select to_char(時間戳的那一列 /

(1000*60

*60*24

)+

to_date(

'1970-01-01 08:00:00'

,'yyyy-mm-dd hh24:mi:ss'),

'yyyy-mm-dd'

)as createtime from 表名 ;

原理: 用to_date函式將字串』1970-01-01 08:00:00』轉換為日期作為起始時間,同時將時間戳轉換為天數,在此基礎上將兩者相加,即為該時間戳對應的具體日期時間,最後擷取我們需要的日期部分,並且取名為createtime

需要注意幾點:

1.採用to_char函式轉換為字串是為了後期進行傳輸;

2.從八點開始計算是採用北京時間;

3.以24小時的形式顯示出來要用hh24;

4.oracle資料庫中不區分大小寫,為了將分鐘和月份區分開來,將分鐘用mi表示;

參考鏈結1

Oracle 時間戳與日期的轉換

一 to char 與 to date 函式 1.to char 將時間日期按照指定的格式輸出,得到的是字串,而非date型別。select sysdate,to char sysdate,yyyy mm dd from dual select sysdate,to char sysdate,yyy...

Oracle 時間戳與日期的轉換

一 to char 與 to date 函式 1.to char 將時間日期按照指定的格式輸出,得到的是字串,而非date型別。select sysdate,to char sysdate,yyyy mm dd from dual select sysdate,to char sysdate,yyy...

Oracle 時間戳與日期的轉換

一 to char 與 to date 函式 1.to char 將時間日期按照指定的格式輸出,得到的是字串,而非date型別。select sysdate,to char sysdate,yyyy mm dd from dual select sysdate,to char sysdate,yyy...