Next_day()函數的用法


一、定義
NEXT_DAY(date,char) 
date參數為日期型, 
char:為1~7或Monday/Mon~Sunday/ 
 
指定時間的下一個星期幾(由char指定)所在的日期, 
char也可用1~7替代,1表示星期日,2代表星期一。。。。 
還可以是星期一、星期二。。。星期日,即 monday,thusday.....(看是什么字符集的)
 

格式:NEXT_DAY(DATE,WEEKDAY)  即 NEXT_DAY(日期,星期幾)

 

  NEXT_DAT函數返回輸入日期開始,緊隨其后的指定星期對應的日期,weekday可以用全稱,也可以用縮寫(如'monday','tuesday','wed')

   

例:next_day(to_date('1999.11.24','yyyy.mm.dd'),'friday')       返回   1999年11月26日

 

例:next_day(to_date('1999.11.24','yyyy.mm.dd'),'wed')         返回   1999年11月01日

注:1999年11月24日是星期三,第二個參數是星期五,是兩天后。第二個例子由於日期正好是星期三,只能用下一個星期三日期。

 
二、用法
 
1、select   next_day(sysdate,1) from dual;
或者select   NEXT_DAY   (sysdate,   'MONDAY ')   FROM   DUAL;
求當前系統時間的下一星期一的時間,若報錯現實“周中的日無效”,是因為字符集的問題,說明你的oracle的字符集是簡體中文的,即:simplified chinese的
可以設置字符集
alter   session   set   NLS_DATE_LANGUAGE   =   American; 將當前對話改為英文。
或者
select next_day(sysdate,'星期一') from dual;即可
2、select next_day('01-Aug-03', 'TUESDAY') from dual;
查詢距03年8月1日的下一個周二。同樣有字符集的問題。
 
注意:

如果今天是星期二,如果要查詢下一個星期二,則為下周的星期二;如果要查詢下一個星期三,要注意,返回值是這個周的星期三,強烈建議大家試一下,最能說明問題.從查詢下一個周三開始,到下一個周六,返回的值都是這個周的周三到周六。

如果要把日期語言修改為簡體中文命令如下,注意要把SIMPLIFIED CHINESE用單引號括起來,因為空格不屬於合法的標識符. 
alter SESSION set NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM