日付型をフォーマット!MySQLのDATE_FORMAT関数を活用
  • facebookページ
  • twitterページ
  • 2020.01.31

    日付型をフォーマット!MySQLのDATE_FORMAT関数を活用

    MySQLで日付型のデータを出力する際「YYYY-MM-DD」という形以外のフォーマットで出力できるということをご存知でしょうか。そこで便利なのが「DATE_FORMAT」という関数です。今回はこちらのフォーマットを使用し、日付型データをフォーマットしていく方法についてご紹介していきます。

    本記事の要点
    • 日付型データの概要
    • MySQLで日付型データをフォーマット

    日付型データとは?

    そもそもMySQLの日付型データとは何でしょうか。本コラムで日付型データとして指すのはDATE型DATETIME型TIMESTAMP型の3種類のデータ型のことです。この3つの特徴についても押さえておきましょう。

    日付型データ
    • DATE型 → 日付部分のみを含む値
    • DATETIME型 → 日付と時間の両方の部分を含む値
    • TIMESTAMP型 → 現在の日付および時間への自動更新機能

    それぞれの形の初期フォーマットも確認しておきましょう。

    日付型データの初期フォーマット
    • DATE型 → YYYY-MM-DD(例:2020-01-27)
    • DATETIME型 → YYYY-MM-DD HH:MM:SS(例:2020-01-27 16:47:12)
    • TIMESTAMP型 → YYYY-MM-DD HH:MM:SS(例:2020-01-27 16:47:12)

    すでに触れた通りDATE型が日付までしか表示できないのに対し、DATETIME型やTIMESTAMP型は日付と時間の両方を取得することができるデータ型となっています。

    MySQLで日付型をフォーマットしてみよう

    それでは早速、先ほど確認した3つの日付型データを用いて、フォーマットを変えてみましょう。ここでは日付型データのフォーマットを変更できるDATE_FORMAT関数を使っていきます。

    DATE型をフォーマット

    まずはDATE型をフォーマットしてみましょう。まずは普通にDATE型を出力してみます。

    通常のDATE型を出力してフォーマットを確認

    DATE_FORMAT関数を使用

    DATE_FORMAT関数を用いることによって「2020-01-27」というDATE型のデータを「2020年01月27日」というフォーマットに変えることができました。では、ここでDATE_FORMAT関数が何をしているかについて見ていきましょう。

    DATE_FORMAT関数の働き

    DATE_FORMAT関数は以下のように記載されることで、第一引数に入った日付データを、第二引数のフォーマットへと変換してくれます。

    先ほどのDATE型では、以下のようなフォーマット指定が第二引数に用いられました。

    DATE_FORMATのフォーマット指定
    • %Y → 年を数字の4桁で表示する
    • %m → 月を数字の2桁で表示する
    • %d → 日付を数字の2桁で表示する

    他にもDATE_FORMATのフォーマット指定には以下のようなものがあります。一部を見ていきましょう。

    DATE_FORMATのフォーマット指定
    • %D → 英語のサフィクスを持つ日付 (0th, 1st, 2nd, 3rd, …)で表示する
    • %a → 簡略曜日名 (Sun..Sat)で表示する
    • %H → 時間 (00..23)で表示する
    • %j → 年間通算日 (001..366)で表示する
    • %M → 月名 (January..December)で表示する
    • %T → 時間、24 時間単位 (hh:mm:ss)で表示する
    • %W → 曜日名 (Sunday..Saturday)で表示する
    • %y → 年、数字 (2 桁)で表示する

    上記のDATE_FORMATのフォーマット指定を見ながら、以下のハンズオンも実際に手を動かして体験していきましょう。

    DATETIME型をフォーマット

    次にDATETIME型をフォーマットしていきましょう。

    通常のDATETIME型を出力してフォーマットを確認

    DATE_FORMAT関数を使用

    指定通り、日が曜日になり、月が英語名になり、秒数が省略されましたね。他の例も試してみましょう。

    DATE_FORMAT関数を使用

    指定したフォーマットが複雑だったかもしれませんが、1つずつ分解してみればまったく難しいことはありません。このようにフォーマットが複雑になったとしても、DATE_FORMAT関数を使えば簡単にDATETIME型のデータを変形できるのです。

    まとめ

    今回はDATE_FORMATという関数を用いて、日付型データをフォーマットしていく方法についてご紹介していきました。出力する際に、指定の日付データの形を整形したいという場合にこの関数が有効です。DATE_FORMATには今回使いきれなかったフォーマットの指定がさまざまにありますので、ぜひ試してみてくださいね。



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE