1. 程式人生 > >Oracle 星期(週末處理)

Oracle 星期(週末處理)

Oracle 星期規則是按國外的來的,國外一週第一天是週日,所以,直接查當前星期會是實際加一天

SELECT to_char(SYSDATE, 'd') FROM dual WHERE 1 = 1

要想顯示正確的,就需要在此基礎上減一天

SELECT to_char(SYSDATE - 1, 'd') FROM dual WHERE 1 = 1

不過,我們也可以直接查詢出英文的結果

--可輸入各國國名,查對應語言星期
SELECT to_char(SYSDATE, 'day', 'NLS_DATE_LANGUAGE=AMERICAN') DAY FROM dual WHERE 1 = 1;

直接查出中文結果也是可以的

SELECT to_char(SYSDATE, 'day') DAY FROM dual WHERE 1 = 1;
如果你想獲取一個時間段間存在的週末天數,可以像下面這種方式來獲取
SELECT *
  FROM (WITH t AS (SELECT rownum - 1 rn FROM dual CONNECT BY rownum <= end_date - start_date)
         SELECT COUNT(*)
           FROM t
          WHERE 1 = 1
            AND to_char(start_date + rn, 'd') IN ('6', '7'))