Oracle判斷周末


有些業務場景下會有擇出周末的需求,具體判斷語句如下:

1、SELECT TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'D') FROM DUAL;

如果DATA_DATE為星期六則結果為7,如果DATA_DATE為星期日則結果為1,所以TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'D') NOT IN ('1','7')即可;

2、SELECT TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'DAY') FROM DUAL;

根據 nls_date_language 的配置參數,結果為 'SATURDAY' 'SUNDAY' 或者 '星期六' '星期日'

另外需要注意的是語句在to_char為day的過程中,day的寫法決定了saturday sunday的大小寫

DAY-> 'SATURDAY' 'SUNDAY'

day-> 'saturday' 'sunday'

Day-> 'Saturday' 'Sunday'

 

但總有一些特殊情況,偶爾情況下還是需要周末的數據,但大方向是擇出周末,提供一個思路:

使用一張配置表,表中可列出日歷(如1900-01-01~2099-12-31),再插入一個開關字段(0為生效,1為失效),日常周末開關狀態為1,需要使用的置為0

如有更好的方案歡迎交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM