我有一個這個查詢并且作業正常。
select TO_CHAR(A.CREATE_DATE, 'DD') DAYs,TO_CHAR(A.CREATE_DATE, 'MM') MONTHS,
SUM(CASE WHEN TO_CHAR(A.RCPT_DTIME,'HH24') = 8 THEN 1 ELSE 0 END) AS TIME8,
SUM(CASE WHEN TO_CHAR(A.RCPT_DTIME,'HH24') = 7 THEN 1 ELSE 0 END) AS TIME7
from PERSON A, HRM B
where A.PERSON_ID = B.PERSON_ID
AND A.CREATE_DATE >= TO_DATE(:i_CREATE_DATE || '00','YYYYMMDDHH24MISS')
AND A.CREATE_DATE < TO_DATE(:i_CREATE_DATE || '00','YYYYMMDDHH24MISS')
GROUP BY TO_CHAR(A.CREATE_DATE, 'DD'),TO_CHAR(A.RCPT_DTIME, 'MM')
ORDER BY MONTHS,DAYs
正常查詢的時間從 00:00 開始到每天的 00:00。但我想將一天的時間范圍設為當天的 07:00 am 和明天的 07:00 am。我怎樣才能做這個?
uj5u.com熱心網友回復:
你可以TRUNC把日期加上 7 小時。例如,這將選擇今天早上 7 點和明天早上 7 點:
SELECT TRUNC(sysdate) INTERVAL '7' HOUR,
TRUNC(sysdate) 1 INTERVAL '7' HOUR FROM dual;
所以你可以在 where 子句中使用它,比如
SELECT columnselection FROM tableselection
WHERE ...AND TRUNC(yourdate) INTERVAL '7' HOUR <= datetocompare
AND TRUNC(yourdate) 1 INTERVAL '7' HOUR >= datetocompare AND...
您也可以BETWEEN在比較日期時使用而不是 <= 和 >=,有些人認為這更容易閱讀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478842.html
