在Oracle是提供了next_day求指定日期的下一个日期.
语法 : next_day( date, weekday )
date is used to find the next weekday.
weekday is a day of the week (ie: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY)
可用于:
Oracle 9i, Oracle 10g, Oracle 11g
For example:
next_day('01-Aug-03', 'TUESDAY') would return '05-Aug-03'
next_day('06-Aug-03', 'WEDNESDAY') would return '13-Aug-03'
next_day('06-Aug-03', 'SUNDAY') would return '10-Aug-03'
但是在执行如下命令时出错,错误提示为不合法的 month,但实际上单词本身并没有错,而是环境问题:
SQL> select next_day('01-Aug-03', 'TUESDAY') from dual;
select next_day('01-Aug-03', 'TUESDAY') from dual
*
ERROR at line 1:
ORA-01843: not a valid month
分析问题:
首先查询当前日期语言 NLS_DATE_LANGUAGE 值.
SQL>select * from v$nls_parameters;
PARAMETER VALUE
---------------------------------------------------------------- -----------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
---------------------------------------------------------------- -----------------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
经过查询,发现NLS_DATE_LANGUAGE=SIMPLIFIED CHINESE
解决办法:
1 . 改写命令
SQL>select next_day(sysdate,'星期一') from dual;
NEXT_DAY(SYSDA
--------------
23-3月 -09
2. 修改当前会话NLS_DATE_LANGUAGE值为AMERICAN
SQL> alter SESSION set NLS_DATE_LANGUAGE=AMERICAN ;
Session altered.
SQL> select next_day(sysdate,'tuesday') from dual;
NEXT_DAY(SYS
------------
24-MAR-09
SQL>
除此之外,还有注意的问题:
如果今天是星期二,如果要查询下一个 星期二,则为下周的星期二;如果要查询下一个星期三,要注意,返回值是这个周的星期三,强烈建议大家试一下,最能说明问题.从查询下一个周三开始,到下一个周六,返回的值都是这个周的周三到周六。
如果要把日期语言修改为简体中文命令如下,注意要把SIMPLIFIED CHINESE用单引号括起来,因为空格不属于合法的标识符.
alter SESSION set NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE'
在实际应用是发现,next_day第二个参数使用数字也行,其1 代表周日,2代表周一....
文章出自:http://hi.baidu.com/j2ee_cn/blog/item/ce3ea42fd1c201301e308971.html
分享到:
相关推荐
oracle常用日期函数 months_between add_months next_day to_date() to_Number to_char
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...
3,日期型函数(add_months()、last_day()、round()、next_day()、current_date()...); 4,转换函数(convert()、to_char()、to_date()、to_number()...); 5,聚组函数(avg()、sum()、max()、min()、stddev()...); ...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...
在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 add_months(d,n) 日期d加n个月 last_day(d) 包含d的月?的最后一天的日期 new_time(d,a,b) a?区的...
有些日期时间函数是为Oracle DATE数据类型设计的,比如ADD_MONTHS、CURRENT_DATE、LAST_DAY、NEW_TIME和NEXT_DAY。如果您提供一个时间戳值作为参数,那么Oracle数据库将在内部将输入类型转换为日期值并返回一个日期...
oracle操作日期,求时间间隔,日期和时间函数,时间和字符串转换,设置时间语言,两个日期之间的天数,Next_day的用法,处理月份天数不定的办法,找出今年的天数,日期大全
日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...
10.1.6 NEXT-DAY 10.1.7 LAST-DAY 10.1.8 MOMTHS-BETWEEN 10.1.9 组合日期函数 10.2 日期计算中的ROUND和TRUNC 10.3 使用TO_DATE和TO_CHA设置日期格式 10.3.1 最常见的T0_CHAR错误 10.3.2 NEW_TIME:切换时区 10.3 3...
10.1.6 NEXT-DAY 10.1.7 LAST-DAY 10.1.8 MOMTHS-BETWEEN 10.1.9 组合日期函数 10.2 日期计算中的ROUND和TRUNC 10.3 使用TO_DATE和TO_CHA设置日期格式 10.3.1 最常见的T0_CHAR错误 10.3.2 NEW_TIME:切换时区 10.3 3...
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
§2.2.3 单记录日期函数 62 §2.2.4 单记录转换函数 65 §2.2.5 其它的单记录函数 68 §2.3 SQL中的组函数 73 §2.3.1 多记录组函数 73 §2.3.2 带 GROUP BY 的计算 75 §2.3.3 用 HAVING 来限制分组的计算 75 §2.4...
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name ; 4...
大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...
next_day(日期值,星期):指定日期后的星期对应的新日期 last_day(日期值):返回指定日期所在月份的最后一天 日期进行加减的一些规律: 日期-数字 = 日期 日期+数字 = 日期 日期-日期 = 数字(天数) 16.转换函数 ...
NEXT_DAY71 SYSDATE72 数学函数 72 ABS 73 CEIL 和FLOOR 73 COS COSH SIN SINH TAN TANH 73 EXP 75 LN and LOG75 MOD 76 POWER77 SIGN 77 SQRT 78 字符函数 79 CHR 79 CONCAT 79 INITCAP80 LOWER 和UPPER 81 LPAD 与...
日期/时间函数......................................................................................................... 66 ADD_MONTHS.......................................................................