我用到next_day这个function。
这样写的:
select NEXT_DAY (sysdate, 'MONDAY') FROM DUAL;
我查了NEXT_DAY 的用法,两个参数第1个是date,第2个是varchar2,返回date,但是我sql这么写会报错,错误是oracle-01846:周中的日无效
各位达人帮忙看看,要怎么写啊?

解决方案 »

  1.   

    应该这样写:
    select next_day(sysdate,'星期一') from dual;
      

  2.   

    第2个参数可以是数字1-7,分别表示周日到周六SQL> select next_day(sysdate,7) FROM DUAL;NEXT_DAY(SYSDATE,7)
    -------------------
    2005-9-24 10:48:00
      

  3.   

    select next_day(sysdate,1) from dual
    NEXT_DAY(date,char)
    date参数为日期型,
    char:为1~7或Monday/Mon~Sunday/Sun
      

  4.   

    或者更改设置:SQL> select NEXT_DAY (sysdate, 'MONDAY') FROM DUAL;select NEXT_DAY (sysdate, 'MONDAY') FROM DUALORA-01846: 周中的日无效SQL> alter session set NLS_DATE_LANGUAGE = American;Session alteredSQL> select NEXT_DAY (sysdate, 'MONDAY') FROM DUAL;NEXT_DAY(SYSDATE,'MONDAY')
    --------------------------
    2005-9-26 10:50:25