SQL Serverでデータを扱うとき、日付や時刻の管理は意外と悩みの種です。
例えば、デフォルトのままGETDATE()
を表示すると「2025-09-26 09:12:34.123」といった形式になり、見た目が少し扱いにくい場合があったりします。
業務報告書やCSV出力、画面表示などで「YYYY/MM/DD」や「YYYY年MM月DD日 HH時MM分」といった形に整えたいことは多いはずです。
この記事では、SQL ServerでDataTime型を希望の形式にフォーマットする方法を、実務で使える具体例とともに解説します。
基本的なフォーマット方法

SQL ServerでDataTime型を希望の形に変換する方法はいくつかあります。ここでは代表的な3つの方法を紹介します。
1. CONVERT関数を使う
CONVERT
関数はSQL Serverで昔から使われている日付フォーマットの定番です。書式は以下の通りです。
CONVERT(データ型, 値, スタイル番号)
例として、現在日時を「YYYY-MM-DD HH:MM:SS」形式で表示する場合は次のように書きます。
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS FormattedDate;
よく使うスタイル番号一覧
スタイル | 形式例 |
---|---|
101 | MM/DD/YYYY |
103 | DD/MM/YYYY |
120 | YYYY-MM-DD HH:MI:SS |
121 | YYYY-MM-DD HH:MI:SS.mmm |
スタイル番号を変えるだけで、表示形式を簡単に切り替えられます。
2. FORMAT関数を使う
FORMAT
関数はより自由度の高いフォーマットが可能で、文字列として日時を整形できます。
FORMAT(値, '書式')
例
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd HH:mm:ss') AS FormattedDate;
SELECT FORMAT(GETDATE(), 'yyyy年MM月dd日 HH時mm分ss秒') AS JapaneseDate;
yyyy
→ 年MM
→ 月(2桁)dd
→ 日(2桁)HH
→ 時(24時間表記)mm
→ 分ss
→ 秒
日本語表記や独自の区切り文字も簡単に使えます。
注意点:FORMAT
は便利ですが、大量データの処理ではやや処理が重くなる場合があります。
3. CAST関数を使う
CAST
関数はデータ型を変換する基本的な方法です。文字列型にキャストすることで日付を文字列として扱えます。
CAST(GETDATE() AS VARCHAR(19)) AS FormattedDate;
ただし、フォーマットの自由度はCONVERT
やFORMAT
より低いので、簡単な変換や一時的な出力に向いてます。
よく使うフォーマットパターン(応用的な使い方)
日付や時刻は業務や出力先によってさまざまな形式で必要になります。ここでは、SQL Serverでよく使われるフォーマットパターンをまとめます。
1. 年月日のみ表示
-- CONVERTの場合
SELECT CONVERT(VARCHAR, GETDATE(), 23) AS DateOnly; -- YYYY-MM-DD
-- FORMATの場合
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd') AS DateOnly;
2. 時刻のみ表示
-- CONVERTの場合
SELECT CONVERT(VARCHAR, GETDATE(), 108) AS TimeOnly; -- HH:MI:SS
-- FORMATの場合
SELECT FORMAT(GETDATE(), 'HH:mm:ss') AS TimeOnly;
3. 年月日 + 時刻
-- CONVERTの場合
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS DateTimeFull; -- YYYY-MM-DD HH:MI:SS
-- FORMATの場合
SELECT FORMAT(GETDATE(), 'yyyy/MM/dd HH:mm') AS DateTimeShort; -- YYYY/MM/DD HH:MM
4. 日本語表記
SELECT FORMAT(GETDATE(), 'yyyy年MM月dd日 HH時mm分ss秒') AS JapaneseDate;
- 日本語や独自区切り文字も
FORMAT
を使えば簡単に表現可能 - 報告書や画面表示用に便利
5. カスタム文字列での組み合わせ
SELECT FORMAT(GETDATE(), 'yyyyMMdd_HHmmss') AS CustomFormat; -- 例: 20250926_091234
- ファイル名やログ出力でよく使われる形式
- 文字列として扱えるので、後続処理で自由に操作可能
まとめ

SQL ServerでDateTime型を扱う際、希望の形式にフォーマットする方法を覚えておくと、業務でのデータ表示やCSV出力、レポート作成がぐっと楽になります。
- CONVERT関数:昔からある定番の方法。スタイル番号を指定するだけで簡単に整形可能。高速で大量データにも向く。
- FORMAT関数:自由度が高く、年月日や時刻を日本語表記や独自形式で表示できる。ただし大量データではやや処理が重くなる場合あり。
- CAST関数:型を文字列に変換するシンプルな方法。簡単な表示用に便利。
さらに、年月日だけ、時刻だけ、日本語表記、カスタム形式の方法など、用途に合わせたフォーマットパターンも紹介しました。
実務ではCONVERT
とFORMAT
を使い分け、必要に応じてカスタム形式を活用することで、見やすくかつ扱いやすい日付表示が可能になります。
今日紹介したサンプルコードを参考にして、ご自身の業務やシステムに合ったフォーマットをぜひ試してみてください。
コメント