Top/Oracle/指定月の末日を求める

Oracle/指定月の末日を求める の変更点


*LAST_DAY:指定月の最終日計算 [#i96c78b6]
 dateRet := LAST_DAY( dateSrc );
 LAST_DAYは日付dataSrcの末日の日付を返します。
 この関数を使えば簡単に該当月の最終日を計算してくれるので、
 一般の言語の様に別に関数を設ける必要がありません。
LAST_DAYは日付dataSrcの末日の日付を返します。
この関数を使えば簡単に該当月の最終日を計算してくれるので、
一般の言語の様に別に関数を設ける必要がありません。

 (例1)
 SQL> select LAST_DAY(TO_DATE('2005/11/01')) from dual;
 
 LAST_DAY
 --------
 05-11-30

 (例2)
 SQL> SELECT LAST_DAY(TO_DATE('2000/02/01')),LAST_DAY(TO_DATE('2001/02/01')),
   2         LAST_DAY(TO_DATE('2002/02/01')),LAST_DAY(TO_DATE('2003/02/01'))
   3  FROM DUAL;
 
 LAST_DAY LAST_DAY LAST_DAY LAST_DAY
 -------- -------- -------- --------
 00-02-29 01-02-28 02-02-28 03-02-28
 この例は2000年から2003年の2月の末日を求めています。
 閏年の計算をしなくても簡単に行えます。
この例は2000年から2003年の2月の末日を求めています。
閏年の計算をしなくても簡単に行えます。

 (例3)
 SQL> SELECT
   2   LAST_DAY(SYSDATE) AS SYSDATE_LAST
   3  ,TO_CHAR(LAST_DAY(SYSDATE),'YYYY/MM/DD HH24:MI:SS') AS 日付文字列
   4  ,TO_CHAR(TRUNC(LAST_DAY(SYSDATE),'DD'),'YYYY/MM/DD HH24:MI:SS') AS 日付文字列2
   5  ,LAST_DAY(TO_DATE('2004/02/01')) FROM DUAL;
 
 SYSDATE_ 日付文字列          日付文字列2         LAST_DAY
 -------- ------------------- ------------------- --------
 04-10-31 2004/10/31 17:53:25 2004/10/31 00:00:00 04-02-29
 LAST_DAYは日付部分は月末を返すが、時刻部分は指定日付型の時刻を
LAST_DAYは日付部分は月末を返すが、時刻部分は指定日付型の時刻を
そのまま引き継ぐ様です。
 上のSQLを見ると良くわかるとは思いますが、もし時刻が00:00:00が
上のSQLを見ると良くわかるとは思いますが、もし時刻が00:00:00が
必要であればTRUNC関数で切り捨てる必要があります。

ページ新規作成

新しいページはこちらから投稿できます。

TOP