有人问怎么判断今天是星期几?
select to_char(sysdate,'d') from dual
很显然这句并不能完成要求的功能,因为这只是显示当前为本星期的第几天,而老外把星期天当作每个星期的第一天,那么变通的方法就是求前一天为该周的第几天,不就相当于今天为星期几了么:
select to_char(sysdate - 1,'d') from dual
sql> select to_char(sysdate,'day') day from dual;
DAY
------
星期日
sql> select to_char(sysdate,'day','NLS_DATE_LANGUAGE=AMERICAN') day from dual;
DAY
---------
sunday
当然你也可以直接改变当前 session 的语言设置:
sql> ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
会话已更改。
sql> select to_char(sysdate,'day') day from dual;
DAY
---------
sunday