網頁

2019/11/7

Oracle 查詢昨天的資料 select data from yesterday

Oracle查詢前一日的資料的SQL如下。

有個員工資料表EMPLOYEE,欄位CREATE_TIME為資料建立的時間,格式為DATE

現在是2019/11/08,想要查出昨天2019/11/07建立的員工資料的SQL如下。

SELECT * FROM EMPLOYEE
WHERE CREATE_TIME BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE);

SYSDATE函式用來取的系統今日日期。

「昨天」2019/11/07的實際上是指2019/11/07 00:00:00 - 2019/11/8 00:00:00這段時間,
TRUNC(SYSDATE - 1)代表2019/11/07 00:00:00
TRUNC(SYSDATE)代表2019/11/08 00:00:00


如果CREATE_TIME欄位是用毫秒數(millisecond)儲存的NUMBER(18,0)格式,則要先把毫秒轉成日期格式DATE

SELECT * FROM EMPLOYEE
WHERE TO_DATE('1970/01/01', 'YYYY/MM/DD') + (CREATE_TIME)/1000/60/60/24 
            BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE);

參考:

沒有留言:

張貼留言