オラクルのselect文でDATE型に時刻を表示する方法

オラクルのselect文でDATE型に時刻を表示する方法

オラクルのselect文を出力した場合、日付のみとなります。時刻の出力が必要なケースもあるので、日付と時刻を同時に出力する方法を解説します。



オラクルのselect文でDATE型に時刻を表示する方法

バッチ処理でselect文を自動出力する場合、SQL定義の始めにDATE型を時刻入りに変換する以下の定義を入れることで、そのSQL文で登場するDATE型のすべてで「日付+時刻」が表示されます。

(参考)select文でなくコマンドでシステム日付を出力するSQLコマンド

当記事の説明では、select文で出力された日付で説明していますが、システム日付を表示するSQLコマンドでも同じ結果が得られます。参考に、システム日付を表示するSQLコマンドは下記の通りです。

SQL> select sysdate from dual;

システム日付を表示するSQLコマンドの実行結果

システム日付を表示するSQLコマンドを単に入力すると下記の表示になるため、この後に説明する「select文で日付と時刻を同時に出力するコマンド」のSQLコマンドを入力することで、下記日付にも時刻を表示することができます。

SYSDATE
——–
19-05-21

select文で日付と時刻を同時に出力するコマンド

select文で日付を出力すると「年月日」のみ出力されますが、select文を入力する前に下記のSQLコマンドを入力すると、年月日に加えて時刻も出力されるようになります。

SQL> ALTER SESSION SET NLS_DATE_FORMAT = ‘yyyy/mm/dd hh24:mi:ss’;

コマンドの実行結果

下記の通り、ミリ秒まで出力可能です。

2004/10/06 14:00:50

コマンドの説明

前述のコマンドを解説します。

ALTER SESSION

データベースへの接続に影響するすべての条件またはパラメータを、設定または変更するためのコマンドです。

SET NLS_DATE_FORMAT

日付の書式を指定するコマンドです。
今回の例では「’yyyy/mm/dd hh24:mi:ss’;」(年月日+時刻(秒含む)」という日付の書式で出力しなさいという命令になります。