日付や時刻のフォーマットの変更方法

この記事では日付や時刻のフォーマットを変更する方法について解説します。

 日付型の表示形式

日付型のデータは設定されているフォーマットによって表示形式が異なります。

この表示形式はセッション単位でも変更することが可能です。

表示形式を変更することで、検索結果などの視認性を上げることができます。


 フォーマット例

日付、時刻の主なフォーマット形式は下記のとおりです。

必要に応じてこれらを組み合わせて任意の形式で表示できます。

・年

YYYY:4桁の西暦で表示

YY:下2桁の西暦年で表示

RR:下2桁の西暦年で表示、2049年までは50~99年は1950~1999年に変換される

・月

MM:月を2桁の数字で表示

MON:月の名前の省略形(日本語は「1月」、英語は「Jan」など)

・日

DD:日にちを2桁の数字で表示

・曜日

DAY:曜日を表示(「月曜日」など)

DY:曜日を表示(「月」など)

・時刻

HH:12時間表記で時間を表示

HH24:24時間表記で時間を表示

MI:分を表示

SS:秒を表示

FF:秒の少数部

・区切り文字

X:秒と秒の小数部分の区切り、日本語だと「.」で表示

-/,.;::区切り文字として使用可能、スペースも使用可能


 フォーマット形式の変更方法

セッション単位での日付型のフォーマット形式は下記のSQLで変更することができます。

alter session set nls_date_format='<フォーマット形式>';

実際に変更してみます。

まずは現在のフォーマットを確認します。

SQL> select sysdate from dual;
SYSDATE
--------
23-12-12

これをYYYYMMDD形式に変更します。

SQL> alter session set nls_date_format='YYYYMMDD';
セッションが変更されました。
SQL> select sysdate from dual;
SYSDATE
--------
20231212

表示形式が変更されていることが確認できました。