[英]How to display in sql records of past Month (not last 30 days) and update them every 2nd calendar date of the next month?
我試圖表示過去一個月的數據,例如從 4 月 2 日開始的 30 天,並繼續每月更新數據,以便在 5 月 2 日顯示 5 月 2 日之前 30 天的數據。
我將顯示我當前的代碼:
SELECT 'Working Equipment' label, count(*) FROM LOGS_HISTORY
WHERE MODE__ = 'Working'
AND TIME_ >= add_months(sysdate, -1)
union all
SELECT 'Standby Equipment' label, count(distinct TAG_IDENTIFIER) FROM LOGS_HISTORY
WHERE MODE__ = 'Standby'
AND TIME_ >= add_months(sysdate, -1)
它顯示 sysdate 前 30 天的數據,請查看它並建議我應該更改什么?
根據您的要求,您可以使用:
AND TIME_ >= add_months(trunc(sysdate-1,'MM'),-1)
此示例查詢顯示開始日期如何在 5 月 2 日從 3 月 1 日更改為 4 月 1 日:
with dates as
( select trunc(date '2022-04-27')+rownum d
from dual
connect by level < 10
)
select d as sys_date, add_months(trunc(d-1,'MM'),-1) from_date
from dates
order by 1;
結果:
SYS_DATE FROM_DATE
-------- ---------
28-APR-2022 00:00:00 01-MAR-2022 00:00:00
29-APR-2022 00:00:00 01-MAR-2022 00:00:00
30-APR-2022 00:00:00 01-MAR-2022 00:00:00
01-MAY-2022 00:00:00 01-MAR-2022 00:00:00
02-MAY-2022 00:00:00 01-APR-2022 00:00:00
03-MAY-2022 00:00:00 01-APR-2022 00:00:00
04-MAY-2022 00:00:00 01-APR-2022 00:00:00
05-MAY-2022 00:00:00 01-APR-2022 00:00:00
06-MAY-2022 00:00:00 01-APR-2022 00:00:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.