我想找到周日到周六的工作日。在oracle中,默认星期一是一周的第一天。因此,当我使用以下查询
计算工作日时Select to_char(sysdate, 'D') from dual
今天是09/12/2022,这是给我的结果作为5
从周一开始的一周。我想这应该从周日开始计算。理想情况下,如果这周从周日开始,答案应该是6
。
是否有简单的方法,我可以用例语句,但这不是一个好方法。请帮助。
与您的DBA交谈以确定区域。如果它被设置为例如印度,那么你就不需要计算任何东西:
SQL> alter session set nls_territory = 'India';
Session altered.
SQL> Select to_char(sysdate, 'D') from dual;
T
-
6
SQL>
在Oracle中,一周的第一天由NLS_TERRITORY
参数决定。因此,使用星期日为第一个工作日的NLS_TERRITORY
值,例如AMERICA
。
alter session set nls_territory=RUSSIA
select to_char(sysdate, 'D')
from dual