ORACLE 中用next_day取下周中的某一天时,会遇到ORA-01846的错误
SQL> select next_day(sysdate,'TUESDAY') "NEXT_DAY" FROM DUAL;
select next_day(sysdate,'TUESDAY') "NEXT_DAY" FROM DUAL
ORA-01846: not a valid day of the week
SQL>
SQL> Select NEXT_DAY(sysdate,'星期一') "NEXT_DAY" From dual
2 UNION ALL
3 Select NEXT_DAY(sysdate,2) "NEXT_DAY" From dual;
NEXT_DAY
-----------
2010-12-20
2010-12-20
洋鬼子认为一周的第一天是周日,所以要得到下个星期一要传入2 . NEXT_DAY(sysdate,2)
官方文档中对NEXT_DAY的解释:
NEXT_DAY returns the date of the first weekday named by char that is later than the date date. The return type is always DATE, regardless of the datatype of date. The argument char must be a day of the week in the date language of your session,either the full name or the abbreviation. The minimum number of letters required is the number of letters in the abbreviated version. Any characters immediately following the valid abbreviation are ignored. The return value has the same hours, minutes, and seconds component as the argument date.