Oracle 時間戳與日期的轉換

2022-02-11 03:46:25 字數 2016 閱讀 2362

一、to_char() 與 to_date()函式

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。

二、時間戳轉換為date格式

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表示;

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 時間戳與日期的轉換

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

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...