MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL DATE_FORMAT()関数で使える日付フォーマット指定子の一覧と意味を徹底解説

DATE_FORMAT()関数とは

MySQLのDATE_FORMAT()関数は、DATE型やDATETIME型などの日付データを、指定した書式の文字列へ変換するための関数です。第2引数に渡すフォーマット文字列の中で「%」から始まる指定子を組み合わせることで、年・月・日・曜日などの表示方法を自由にコントロールできます。

日付に関する主なフォーマット指定子

DATE_FORMAT()関数でよく使われる日付系の指定子と、それぞれの意味は以下のとおりです。

指定子意味
%a曜日の省略形(Sun、Mon、Tue、Wed、Thu、Fri、Sat)を返します。
%b月名の省略形(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)を返します。
%c月を先頭にゼロを付けない数字で返します(1〜12)。
%D日に英語の序数接尾辞(1st、2nd、3rd、4th〜31st)を付けて返します。
%d日を2桁の数字で返します(01〜31)。接尾辞は付きません。
%jその年の通算日を3桁の数字で返します(001〜366)。
%M月の完全な名前(January〜December)を返します。
%m月を2桁の数字で返します(01〜12)。
%U週番号を返します(00〜53)。日曜日を週の始まりとして計算します。
%u週番号を返します(00〜53)。月曜日を週の始まりとして計算します。
%W曜日の完全な名前(Sunday〜Saturday)を返します。
%Y年を4桁の数字で返します(例:1997、2005)。
%y年を2桁の数字で返します(例:97、05)。

時刻に関する主なフォーマット指定子

あわせて覚えておくと便利な時刻系の指定子も紹介します。

  • %H … 時(24時間制、00〜23)
  • %h / %I … 時(12時間制、01〜12)
  • %i … 分(00〜59)
  • %s / %S … 秒(00〜59)
  • %p … AMまたはPM
  • %r … 12時間制の時刻(hh:mm:ss AM/PM)
  • %T … 24時間制の時刻(hh:mm:ss)
  • %f … マイクロ秒(000000〜999999)

使用例

SELECT DATE_FORMAT('2024-05-15', '%Y年%m月%d日(%a)');
-- 結果: 2024年05月15日(Wed)

このように指定子を組み合わせれば、「2024年05月15日(Wed)」のような読みやすい形式へ簡単に整形できます。なお、月名や曜日の表記言語はシステム変数lc_time_namesの設定に依存し、デフォルト(en_US)では英語表記になります。

まとめ

DATE_FORMAT()関数のフォーマット指定子を使いこなせば、レポート出力や画面表示など、用途に応じた柔軟な日付表示が実現できます。特に%dと%D%mと%c%Mと%bのように似た指定子が多いため、それぞれの違いをしっかり押さえておきましょう。

  1. C言語の書式指定子とは?主な形式指定子の一覧と使い方を解説

    書式指定子(フォーマット指定子)は、C言語における入出力(I/O)操作で使用される重要な要素です。書式指定子を利用することで、コンパイラは入出力操作で扱うデータの型を正しく認識できるようになります。書式指定子に影響を与える要素書式指定子の動作には、以下の3つの要素が影響します。マイナス記号(-):出力を左詰めにします。%の後ろの数字:最小フィールド幅を指定します。文字列がその幅に満たない場合は、空白で埋められます。ピリオド(.):フィールド幅と精度を区切るために使用します。主な書式指定子の一覧C言語でよく使用される書式指定子の一覧を、以下の表にまとめました。指定子用途%c1文字(単一の文字)%

  2. JavaのSimpleDateFormatで使えるフォーマットパターン文字の一覧と使い方

    java.text.SimpleDateFormatクラスは、文字列を日付(Date)に変換したり、日付を指定した形式の文字列に整形したりするために使用されるクラスです。本記事では、SimpleDateFormatで利用できるフォーマットパターン文字の一覧と、実際のコード例をわかりやすく解説します。 日付文字列の解析(パース)方法 SimpleDateFormatクラスのコンストラクタの一つは、目的の日付フォーマットを表すString型の値を受け取り、SimpleDateFormatオブジェクトを生成します。文字列をDateオブジェクトとして解析・変換する手順は以下の通りです。 希望するフ