`
sllizhimei
  • 浏览: 163497 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle日期函数--next_day

阅读更多
在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常用日期函数

    oracle常用日期函数 months_between add_months next_day to_date() to_Number to_char

    oracle函数大全.doc

    ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...

    oracle-10G函数大全.chm

    3,日期型函数(add_months()、last_day()、round()、next_day()、current_date()...); 4,转换函数(convert()、to_char()、to_date()、to_number()...); 5,聚组函数(avg()、sum()、max()、min()、stddev()...); ...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...

    oracle 日期函数集合(集中版本)第1/2页

    在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 add_months(d,n) 日期d加n个月 last_day(d) 包含d的月?的最后一天的日期 new_time(d,a,b) a?区的...

    《Oracle Database编程指南》13-03:日期时间函数(Datetime Functions)

    有些日期时间函数是为Oracle DATE数据类型设计的,比如ADD_MONTHS、CURRENT_DATE、LAST_DAY、NEW_TIME和NEXT_DAY。如果您提供一个时间戳值作为参数,那么Oracle数据库将在内部将输入类型转换为日期值并返回一个日期...

    oracle时间操作

    oracle操作日期,求时间间隔,日期和时间函数,时间和字符串转换,设置时间语言,两个日期之间的天数,Next_day的用法,处理月份天数不定的办法,找出今年的天数,日期大全

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    Oracle_Database_11g完全参考手册.part3/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_Database_11g完全参考手册.part2/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常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...

    Oracle8i_9i数据库基础

    §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...

    orcale常用命令

    (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...

    2009达内SQL学习笔记

    大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...

    jdbc操作文档,数据库基本操作文档集合

    next_day(日期值,星期):指定日期后的星期对应的新日期 last_day(日期值):返回指定日期所在月份的最后一天 日期进行加减的一些规律: 日期-数字 = 日期 日期+数字 = 日期 日期-日期 = 数字(天数) 16.转换函数 ...

    SQL21日自学通

    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 与...

    21天学习SQL V1.0

    日期/时间函数......................................................................................................... 66 ADD_MONTHS.......................................................................

Global site tag (gtag.js) - Google Analytics