データベース - SQL 関数 - 書式設定 TO_CHAR・TO_DATE・TO_TIMESTAMP
1. 概要 わたしが、プログラミングするときにいつも問題になるのは、日時のデータと文字列との相互変換です。 これらを「SQL」で実現する関数が、以下に述べるものです。 本ページは、下記のサイトを参考にさせていただきました。 「TO_CHAR 日付や数値を文字列へ変換する Oracle SQL 関数」 2. TO_CHAR 文字列型へ変換 「TO_CHAR」は、日時型・日付型・時刻型・タイムスタンプ型を一定の書式で、文字列へと変換します。 TO_CHAR(カラム, 'YYYY-MM-DD HH24:MI:SS') てな感じです。 書式として、下記のものが使えます。
「TO_CHAR 日付や数値を文字列へ変換する Oracle SQL 関数」
TO_CHAR(カラム, 'YYYY-MM-DD HH24:MI:SS')
他に「RR」とかあるようですが、使ったことがない。 基本、数字が入らないものは、ゼロパディングされます。 3. TO_DATE・TO_TIMESTAMP 日時型・・・へ変換 TO_DATE(文字列, 'YYYY-MM-DD HH24:MI:SS') とか TO_TIMESTAMP(文字列, 'YYYY-MM-DD HH24:MI:SS') で、文字列を日時型・日付型・時刻型・タイムスタンプ型へ変換します。 「DB2」では、「TO_DATE」でタイプスタンプ型にすることが可能であったように記憶しているのですが・・・。 「postgreSQL9.6」で、「TO_DATE」を使用して、タイムスタンプ型へ入力したところ、時刻以下が「00:00:00」になってしまいました。 「postgreSQL」では、タイムスタンプ型にするには明示的に TO_TIMESTAMP を使うべきのようです。
TO_DATE(文字列, 'YYYY-MM-DD HH24:MI:SS')
TO_TIMESTAMP(文字列, 'YYYY-MM-DD HH24:MI:SS')