[[FAQ]]
*LAST_DAY:指定月の最終日計算 [#i96c78b6]
dateRet := LAST_DAY( dateSrc );
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月の末日を求めています。
閏年の計算をしなくても簡単に行えます。
(例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は日付部分は月末を返すが、時刻部分は指定日付型の時刻をそのまま引き継ぐ様です。
上のSQLを見ると良くわかるとは思いますが、もし時刻が00:00:00が必要であればTRUNC関数で切り捨てる必要があります。
**コメント
#comment