Erp100论坛's Archiver

xiangzhao 发表于 2008-7-12 21:51

解释 next_day

next_day()使用的标准格式如下:
date_value:=next_day(date_value,day_of_the_week);
它用来返回从第一个参数指定的日期开始,第一次到达第二个参数(星期)的日期.
例如:要取2003-12-2以后的第一个星期天,就可以用如下语句
select next_day(date'2003-12-2','SUNDAY');

xiangzhao 发表于 2008-7-12 21:52

SQL> select next_day('2003-12-2',1) from dual;
  
select next_day('2003-12-2',1) from dual
  
ORA-01861: 文字与格式字符串不匹配
  
SQL> select next_day('2003-12-2','1') from dual;
  
select next_day('2003-12-2','1') from dual
  
ORA-01861: 文字与格式字符串不匹配

xiangzhao 发表于 2008-7-12 21:53

next_day( D , char):
返回日期晚于 D ,且星期为 CHAR 的那一天的日期。
D 必须是日期类型,CHAR 的取值 1~7 或 星期的英文
  
SQL> select next_day(date'2003-12-2',1) from dual;
  
NEXT_DAY(
---------
07-DEC-03
  
SQL> select next_day(to_date('2003-12-2','yyyy-mm-dd'),1) from dual;
  
NEXT_DAY(
---------
07-DEC-03
  
SQL> select next_day(to_date('2003-12-2','yyyy-mm-dd'),3) from dual;
  
NEXT_DAY(
---------
09-DEC-03
  
SQL> select next_day(to_date('2007-12-2','yyyy-mm-dd'),7) from dual;
  
NEXT_DAY(
---------
08-DEC-07
  
SQL> SELECT NEXT_DAY(date'2003-12-2','TUESDAY') FROM DUAL;
  
NEXT_DAY(
---------
09-DEC-03
  
当参数 D 的格式与数据库默认的日期格式相同时可以不使用TO_DATE 或DATE 去转换。
  
SQL> select next_day('15-MAR-03','TUESDAY') FROM DUAL;
  
NEXT_DAY(
---------
18-MAR-03
  
SQL> select next_day('15-MAR-03',3) FROM DUAL;
  
NEXT_DAY(
---------
18-MAR-03
  
SQL> select next_day('15-MAR-03','MON')FROM DUAL;
  
NEXT_DAY(
---------
17-MAR-03

xiangzhao 发表于 2008-7-12 21:53

SQL> SELECT NEXT_DAY(date'2003-12-2','TUESDAY') FROM DUAL;  
  
NEXT_DAY(  
---------  
09-DEC-03  
  
当参数 D 的格式与数据库默认的日期格式相同时可以不使用TO_DATE 或DATE 去转换。  
  
SQL> select next_day('15-MAR-03','TUESDAY') FROM DUAL;  
  
NEXT_DAY(  
---------  
18-MAR-03  
  
SQL> select next_day('15-MAR-03','MON')FROM DUAL;  
  
NEXT_DAY(  
---------  
17-MAR-03

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.