Oracle
使用案例語句過濾上個月的數據
這些是我可用的屬性:
DT_CURRENT_DT Month Year 11-OCT-18 10 2018 12-OCT-18 10 2018 13-OCT-18 10 2018 14-OCT-18 10 2018 15-OCT-18 10 2018 16-OCT-18 10 2018 17-OCT-18 10 2018
我需要一個基於 sysdate 提取上個月數據的邏輯。
where DT_CURRENT_DT >= trunc (sysdate, 'MM') - interval '1' month and DT_CURRENT_DT < trunc (sysdate, 'MM')
但是,當 sysdate = 2018 年 11 月時,必須從 10 月 15 日到 10 月底提取數據。對於其他月份,它必須像上面的程式碼一樣執行。
更新(11 月 11 日) - 案常式式碼版本:
WHERE DT_CURRENT_DT >= CASE WHEN extract ( month from trunc (sysdate, 'MM')) = 11 and extract ( year from trunc (sysdate, 'MM')) = 2018 THEN to_date('15-OCT-2018') ELSE trunc(sysdate, 'MM') - interval '1' month END AND DT_CURRENT_DT < trunc (sysdate, 'MM')
嘗試將
where
子句更改為以下內容:where DT_CURRENT_DT >= trunc (sysdate, 'MM') - interval '1' month and DT_CURRENT_DT < trunc (sysdate, 'MM') and ( trunc(sysdate, 'MM') != to_date('01-NOV-2018') or extract(day from DT_CURRENT_DT) >= 15 );