Oracle データベースで月初日と月末日を取得する方法

Oracle データベースで月初日と月末日を取得する方法

Oracle データベースで月初日(1日)と月末日(30日とか31日)を取得する方法です。


現在の日時を取得する

SQL> SELECT SYSDATE FROM DUAL;

SYSDATE
-------------------
03/22/2018 03:05:29

月末日を取得する

月末日を取得するには LAST_DAY という関数を使います。
SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL;

LAST_DAY(SYSDATE)
-------------------
03/31/2018 03:06:50

月初日を取得する

月初日を取得するには TRUNC という関数を使います。FIRST_DAY のような関数は存在しません。
SQL> SELECT TRUNC(SYSDATE, 'MONTH') FROM DUAL;

TRUNC(SYSDATE,'MONT
-------------------
03/01/2018 00:00:00