【MySQL】DATE_FORMATの基本的な使い方と応用をわかりやすく解説。
  • facebookページ
  • twitterページ
  • 2019.12.31

    【MySQL】DATE_FORMATの基本的な使い方と応用をわかりやすく解説。

    MySQLなどデータベースを扱う上で日付を指定しデータを取得することは度々あります。

    MySQLではDATEなどの時間型をより簡単に扱うためにDATE_FORMATやTIME_FORMATというものが用意されています。

    今回はこの中で「DATE_FORMAT」について解説していきたいと思います。

    フォーマット形式

    DATE_FORMATで使うフォーマット形式には様々なものがあり、これを指定子と呼びます。

    指定子を以下に簡単にまとめてみました。

    フォーマット形式
    • %a – 簡略曜日名 (Sun..Sat)
    • %b – 簡略月名 (Jan..Dec)
    • %c – 月、数字 (0..12)
    • %D – 英語のサフィクスを持つ日付 (0th, 1st, 2nd, 3rd, …)
    • %d – 日、数字 (00..31)
    • %e – 日、数字 (0..31)
    • %f – マイクロ秒 (000000..999999)
    • %H – 時間 (00..23)
    • %h – 時間 (01..12)
    • %I – 時間 (01..12)
    • %i – 分、数字 (00..59)
    • %j – 年間通算日 (001..366)
    • %k – 時 (0..23)
    • %l – 時 (1..12)
    • %M – 月名 (January..December)
    • %m – 月、数字 (00..12)
    • %p – AM または PM
    • %r – 時間、12時間単位 (hh:mm:ss に AM または PM が続く)
    • %S – 秒 (00..59)
    • %s – 秒 (00..59)
    • %T – 時間、24 時間単位 (hh:mm:ss)
    • %U – 週 (00..53)、日曜日が週の初日、WEEK() モード 0
    • %u – 週 (00..53)、月曜日が週の初日、WEEK() モード 1
    • %V – 週 (01..53)、日曜日が週の初日、WEEK() モード 2、%X とともに使用
    • %v – 週 (01..53)、月曜日が週の初日、WEEK() モード 3、%x とともに使用
    • %W – 曜日名 (Sunday..Saturday)
    • %w – 曜日 (0=Sunday..6=Saturday)
    • %X – 年間の週、日曜日が週の初日、数字、4桁、%V とともに使用
    • %x – 年間の週、月曜日が週の初日、数字、4桁、%v とともに使用
    • %Y – 年、数字、4桁
    • %y – 年、数字 (2桁)
    • %% – リテラル 「%」 文字

    DATE_FORMATの使い方

    それでは具体的な使い方について見ていきましょう。

    DATE_FORMATの基本構文は以下の通りです。

    実際のコードでフォーマットをそれぞれ確認してみましょう。

    DATE_FORMATの応用

    DATE_FORMATを使って年間カレンダーを作る方法をご紹介します。

    INSERT INTOで予め用意しておいたテーブルに基点となるデータを追加し、WHERE句を使ってループ処理させています。

    UNION ALLを使用することによって、”INSERT INTO”とその次のクエリである”SELECT”を結合させることが出来るようになります。

    この時、基点は”INSERT INTO”となっているため、SELECT + WHEREでループする数だけINSERTする仕組みとなります。

    まとめ

    いかがでしたか?

    今回はDATE_FORMATについて解説してきましたが、意外にも使い方に幅があることがお判りいただけたと思います。

    データベースの設計をする場合にはMySQL内で全てのクエリを実行させるため、基本を確実に覚えるようにしましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE