「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

SQLで日付や日時を扱っていると、
「YYYYMMDD形式で出したい」「時刻付きで表示したい」
といった場面は頻繁にあります。

そんなときに使うのが TO_CHAR 関数 です。

この記事では、

  • TO_CHARの基本的な使い方

  • 日時を文字列に変換する代表的なフォーマット

  • よくあるミスと注意点

実務ですぐ使える例付き で解説します。


TO_CHARとは?

TO_CHAR は、日付・日時・数値を文字列に変換するSQL関数です。

特にOracle SQLでは、

  • 日付型(DATE)

  • タイムスタンプ(TIMESTAMP)

指定フォーマットの文字列 に変換する際によく使われます。


TO_CHARの基本構文(日時変換)

使用例

結果例




よく使う日時フォーマット一覧

日付のみ

フォーマット出力例説明
YYYYMMDD20251213ファイル名・キー用
YYYY/MM/DD2025/12/13表示用(スラッシュ)
YYYY-MM-DD2025-12-13ISO形式
MM/DD/YYYY12/13/2025海外向け

日時(時刻あり)

フォーマット出力例説明
YYYY/MM/DD HH24:MI2025/12/13 16:30分まで表示
YYYY/MM/DD HH24:MI:SS2025/12/13 16:30:45秒まで表示
HH24:MI:SS16:30:45時刻のみ

年・月・日を個別に扱う

フォーマット出力例
YYYY2025
MM12
DD13

12時間表記と24時間表記の違い

24時間表記(推奨)

12時間表記(AM/PM付き)

実務では HH24 を使う方が安全
(AM/PMの付け忘れによる誤認識を防げる)


TIMESTAMP型でも使える?

はい、TIMESTAMP 型でも同様に使えます。


よくあるミスと注意点

① 日付を文字列として比較してしまう

👉 検索条件では日付型のまま比較するのが基本


② フォーマットを間違える

間違い正しい
HHHH24
mmMI
ddDD

👉 分は MI、月は MM


③ NLS設定に依存する

TO_CHARNLS_DATE_LANGUAGE の影響を受ける場合があります。
帳票・CSV出力では 明示的なフォーマット指定 が安全です。


TO_DATE / TO_TIMESTAMP との違い

関数役割
TO_CHAR日時 → 文字列
TO_DATE文字列 → 日付
TO_TIMESTAMP文字列 → タイムスタンプ

👉 表示用は TO_CHAR、計算・比較は日付型のまま


まとめ

  • 日時を指定フォーマットで表示したいときは TO_CHAR

  • YYYYMMDDHH24:MI:SS は実務で頻出

  • 検索条件では 文字列変換しない のが重要

TO_CHARを正しく使えるようになると、
ログ出力・帳票・ファイル連携が一気に楽になります。

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x