- 1. 概要
- 2. TO_CHAR 文字列型へ変換
- 3. TO_DATE・TO_TIMESTAMP 日時型・・・へ変換
- 4. 参考サイト
1. 概要
わたしが、プログラミングするときにいつも問題になるのは、日時のデータと文字列との相互変換です。
これらを「SQL」で実現する関数が、以下に述べるものです。
2. TO_CHAR 文字列型へ変換
「TO_CHAR」は、日時型・日付型・時刻型・タイムスタンプ型を一定の書式で、文字列へと変換します。
TO_CHAR(カラム, 'YYYY-MM-DD HH24:MI:SS')
てな感じです。
書式として、下記のものが使えます。
書 式 | 意 味 | 備考 |
YYYY | 西暦年4桁 | |
YY | 西暦年下2桁 | |
MM | 月 | |
DD | 日 | |
HH | 12時間表記の時 | |
HH24 | 24時価表記の時 | |
MI | 分 | |
SS | 秒 | |
FF3 | ミリ秒 | |
FF6 | マイクロ病 | |
他に「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()」を使うべきのようです。
4. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「TO_CHAR 日付や数値を文字列へ変換する Oracle SQL 関数」
|
|