【Oracle】よく使う日付関数を学ぼう!

Oracle

前回は、数値関数について説明しました。今回は日付関数について説明します。この記事で紹介する関数でできることはシステム日付の取得と書式指定、日付の編集、日付の取得です。

システム日付の取得と書式指定

SYSDATEはシステム日付をDATE型のデータとして返してくれます。

SELECT SYSDATE FROM DUAL

では、TO_CHAR関数を使いシステム日付を書式を指定し返したいと思います。

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS "SYSDATE" FROM DUAL
SYSDATE
2024/04/03 13:11:20
システム日付をTO_CHAR関数で文字列にして書式指定

指定できる書式は下記表の通りです。

書式説明
YYYY4桁で表した西暦年
YY2桁で表した西暦年
MM
DD
HH12時間制の時(1~12)
HH2424時間制の時(1~24)
MI
SS
D曜日(1:日曜日~7:土曜日)
DAY曜日(日曜日~土曜日)
AM午前、午後

では、日付の編集、取得、計算で使う関数を確認してみましょう。

日付の編集

文字列を日付型に変換(TO_DATE)

TO_DATE関数は、文字列を日付型に変換するために使用します。

SELECT TO_DATE('2024-04-03', 'YYYY/MM/DD ') AS "TO_DATE" FROM DUAL
TO_DATE
2024/04/03
TO_DATE関数を使用し文字列を日付型に変換

書式を指定して編集(TO_CHAR)

TO_CHAR関数は日付や数値などのデータ型を指定したフォーマットで文字列に変換するために使用します。

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH:MI:SS') AS "TO_CHAR" FROM DUAL
SYSDATE
2024/04/03 01:59:58
TO_CHAR関数を使用し、システム日付を書式を指定し取得

日付の取得

日付の曜日取得(DAY)

TO_CHAR関数を使用し、DAYを指定をすることで日付から曜日を取得することができます。

SELECT TO_CHAR(SYSDATE, 'DAY') AS "DAY" FROM DUAL
DAY
WEDNESDAY
DAYで曜日を取得(2024年4月3日は水曜日)

午前・午後の取得(AM)

TO_CHAR関数を使用し、AMを指定をすることで午前、午後を取得することができます。

SELECT TO_CHAR(SYSDATE, 'AM') AS "AM or PM" FROM DUAL
AM or PM
PM
AMでシステム日付から午前・午後を取得

月末の取得(LAST_DAY)

LAST_DAY関数は、指定した日付の月の最終日を取得することができます。

SELECT LAST_DAY(SYSDATE) AS "月末" FROM DUAL
月末
30-04-24
LAST_DAY関数で4月の月末を取得

月初の取得(TRUNC(日付,’MONTH’)

TRUNC関数に日付とMONTHを指定することで、月初を取得することができます。

SELECT TRUNC(SYSDATE, 'MONTH') AS "月初" FROM DUAL
月初
01-04-24
TRUNC関数で日付を月の最初の日に切り捨て月初を取得

まとめ

日付関数の使い方がなんとなく理解できたんじゃないでしょうか。ここでは説明していませんが、日付の計算なども可能です。気になる方は日付の計算方法も調べて覚えておきましょう!

コメント