簡體   English   中英

如何在過去一個月(不是最近 30 天)的 sql 記錄中顯示並在下個月的第 2 個日歷日期更新一次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM