【ORACLE】日付関数


ここではORACLEデータベースの日付関数の使い方を紹介しています。

CURRENT_DATE関数

CURRENT_DATE関数を使うことで、現在の日付を取得することが出来ます。

CURRENT_DATE

実行すると次のように結果を返します。

SELECT CURRENT_DATE FROM dual;

CURRENT_DATE
-------------------
2019-09-09

CURRENT_TIMESTAMP関数

CURRENT_TIMESTAMP関数を使うことで、現在の日時を取得することが出来ます。

CURRENT_TIMESTAMP

実行すると次のように結果を返します。

SELECT CURRENT_TIMESTAMP FROM dual;

CURRENT_TIMESTAMP
-------------------
2019-09-09 10:00:00

LAST_DAY関数

LAST_DAY関数を使うことで、月末の日を取得することが出来ます。

LAST_DAY(日付)

実行すると次のように結果を返します。

SELECT SYSDATE FROM dual;

SYSDATE
-------------------
2019-09-09 10:00:00

SELECT LAS_TDAY(SYSDATE) FROM dual;

LAS_TDAY(SYSDATE)
-------------------
2019-09-30 10:00:00

SELECT TO_CHAR(LAS_TDAY(SYSDATE),'YYYY/MM/DD') FROM dual;

TO_CHAR(LAS_TDAY(SYSDATE),'YYYY/MM/DD')
---------------------------------------
2019/09/30

MONTHS_BETWEEN関数

MONTHS_BETWEEN関数を使うことで、日付の差(月の単位)を求めることが出来ます。

日付1から日付1を引いた差を月単位に求めることが出来ます。

MONTHS_BETWEEN(日付1,日付2)

実行すると次のように結果を返します。

SELECT dt1,dt2,MONTHS_BETWEEN(dt1,dt2) FROM test;

dt1       dt2       MONTHS_BETWEEN(dt1,dT2)
-------------------------------------------
19-10-01  09-09-01  1
19-09-25  09-10-01  -1

NEXT_DAY関数

NEXT_DAY関数を使うことで、ある日付の翌日以降で、指定した曜日の日付を求めることが出来ます。

NEXT_DAY(日付,曜日)

次のSQLでは、2019年9月1日の翌日以降で、次の月曜日の日付を取得しています。

SELECT NEXT_DAY(TO_DATE('2019/09/01','yyyy/mm/dd'),'monday') NEXT1 FROM dual;

NEXT1
-------------------
2019-09-02 00:00:00

SELECT NEXT_DAY(TO_DATE('2019/09/01','yyyy/mm/dd'),'月曜日') NEXT1 FROM dual;

NEXT1
-------------------
2019-09-02 00:00:00

SYSDATE関数

SYSDATE関数を使うことで、現在の日付・時刻を取得することが出来ます。
SYSDATEはSELECT句やWHERE句で使うことが出来ます。

SYSDATE

実行すると次のように結果を返します。

SELECT SYSDATE FROM dual;

SYSDATE
-------------------
2019-09-09 10:00:00

SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM dual;

TO_CHAR(SYSDATE,'YYYY/MM/DD')
------------------------------
2019/09/09