Oracle 時間戳與日期的轉換

1、to_char() 與 to_date()函數數據庫

1. to_char()oracle

將時間日期按照指定的格式輸出,獲得的是字符串,而非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;date

 

查詢結果select

 

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

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。

 

 

2、時間戳轉換爲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表示;

相關文章
相關標籤/搜索