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);
參考:
沒有留言:
張貼留言