【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