[英]Oracle - get data from first day of previous month at particular time to first day of current month at particular time
我的要求是在 Oracle 中獲取特定日期范圍的數據,如下所示 -
CompletedDate = Range between First Day of Previous Month @12:00AM to First Day of Current Month @4:00PM
並且
CompleteDate = Range between previous Friday at 4:31 PM and current Friday at 4:30 PM
你能給我一個解決方案嗎?
那將是
select *
from your_table
where date_column between add_months(trunc(sysdate, 'mm'), -1)
and trunc(sysdate, 'mm') + 16/24
和
select *
from your_table
where date_column between next_day(trunc(sysdate), 'FRIDAY') - 7 + 16/24 + 31/(24*60)
and next_day(trunc(sysdate), 'FRIDAY') + 16/24 + 30/(24*60)
你似乎想要:
where (CompleteDate >= add_months(trunc(sysdate, 'MON'), -1) and
CompleteDate < trunc(sysdate, 'MON')
) or
(CompleteDate < next_day(trunc(sysdate), 'FRIDAY') + interval '14' hour + interval '30' minute and
CompleteDate > next_day(trunc(sysdate), 'FRIDAY') - interval '7' day + interval '14' hour + interval '30' minute
)
您可以按如下方式使用日期操作:
--scenario 1
SELECT * FROM YOUR_TABLE
WHERE DATE_COLUMN BETWEEN ADD_MONTHS(TRUNC(SYSDATE,'MON'), -1)
AND TRUNC(SYSDATE,'MON') + INTERVAL '16' HOUR;
--scenario 2
SELECT * FROM YOUR_TABLE
WHERE DATE_COLUMN BETWEEN NEXT_DAY(TRUNC(SYSDATE) - INTERVAL '8' DAY,'FRI')
+ INTERVAL '16' HOUR + INTERVAL '31' MINUTE
AND NEXT_DAY(TRUNC(SYSDATE) - INTERVAL '1' DAY,'FRI') + INTERVAL '16' HOUR;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.