Oracle 星期(周末处理)

版权声明:如若转载或他用,望告知 https://blog.csdn.net/qwerdfcv/article/details/80737756

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'))

猜你喜欢

转载自blog.csdn.net/qwerdfcv/article/details/80737756