acle的next_day
来源:互联网 发布:linux nano 显示行号 编辑:程序博客网 时间:2024/06/11 21:09
http://blog.csdn.net/chenjinlin1/article/details/6582761
在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代表周一....
- acle的next_day
- 关于next_day的使用
- oracle的next_day
- oracle的next_day
- oracle的next_day .
- oracle的next_day
- oracle的next_day
- next_day的使用
- NEXT_DAY
- 关于日期函数next_day()的使用
- acle用户管理
- 用next_day得出本周的周一到周日的日期
- 用next_day得出本周的周一到周日的日期
- oracle next_day
- oracle使用to_char和next_day函数得到本周的第一天和最后一天日期
- Oracle PL/SQL之NEXT_DAY - 取得下一个星期几所在的日期
- oracle使用to_char和next_day函数得到本周的第一天和最后一天日期
- NEXT_DAY(’01-SEP-95′,1) 错误:ORA-01843:无效的月份
- PHP程序员的技术成长规划
- 异常的转换思想:当出现的异常是调用者处理不了的,就需要将此异常转换为一个调用者可以处理的异常抛出。
- MyBatis Generator (MBG) 生成类增加OR条件
- php的curl也没这么复杂
- Linux中设置服务自启动的三种方式
- acle的next_day
- 转发与重定向
- 华为三层交换机做DHCP Server
- ObjectInputStream与ObjectOutputStream类
- Java NIO系列教程(二) Channel原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO的通道类似流,但又有些不同: 既可以从通
- 粘包问题
- major minor version jdk版本对照表
- 简单汇编代码分析与基础
- 欢迎使用CSDN-markdown编辑器