[英]Finding all records within a date range in Oracle 12c
我不確定為什么我的語法不起作用,但是我正在尋找字段Pend_Start_Dt大於變量PndStDt且Pend_End_Date小於變量PndEnDt的所有記錄。 如果記錄沒有當前的結束日期,那么只要開始日期在用戶輸入的開始日期和結束日期之間,記錄也應拉該日期。
因此,基本上,在兩種情況下都應包含記錄:
“開始日期”字段大於或等於用戶輸入的開始日期, 而 “結束日期”字段小於或等於用戶輸入的結束日期
要么
“開始日期”字段位於用戶輸入的開始日期和結束日期之間, “結束日期”字段為null。
我希望不要太困惑。
我嘗試過的語法如下,但是我的存儲過程無法編譯。
Where a.Audit_Status = '3'
AND ((a.Pend_Start_DT >= TO_DATE (PndStDt, 'yyyy/mm/dd')) AND (a.Pend_End_DT <= (PndEnDT, 'yyyy/mm/dd'))
OR ((a.Pend_Start_DT between TO_DATE (PndStDt, 'yyyy/mm/dd') and TO_DATE (PndEnDT, 'yyyy/mm/dd') AND a.Pend_End_DT is null));
缺少TO_DATE
,並且括號未放在正確的位置:
WHERE a.Audit_Status = '3'
AND
(
( a.Pend_Start_DT >= To_Date( PndStDt, 'yyyy/mm/dd' )
AND a.Pend_End_DT <= To_Date( PndEnDT, 'yyyy/mm/dd' )
)
OR
( a.Pend_Start_DT BETWEEN To_Date( PndStDt, 'yyyy/mm/dd' )
AND To_Date( PndEnDT, 'yyyy/mm/dd' )
AND a.Pend_End_DT IS NULL
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.