【WHERE DATE句】MySQL 日付・時間処理関数の使い方まとめ10選
  • facebookページ
  • twitterページ
  • 2019.12.09

    【WHERE DATE句】MySQL 日付・時間処理関数の使い方まとめ10選

    MySQLのDATE関数を含む日付・時間処理関数を使用したことはあるでしょうか。少し余裕が出てきたタイミングでぜひ使用してみることをおすすめします。今回の記事では、MySQL DATEの主な機能やWHERE DATE句の使い方をご紹介しつつ、日付・時間処理関数の使い方を解説していきましょう。

    本記事の要点
    • MySQL WHERE DATE関数の機能
    • MySQL WHERE DATE句の使い方
    • MySQLの日付・時間処理関数まとめ

    MySQLのDATE関数とは

    MySQLのDATE関数とは日付または日付時間式の日付部分を出力する関数です。実際に使い方を見てみましょう。

    SELECTステートメントでDATE関数を指定することで、日付または日付時間式の日付部分を出力することができます。具体的な使い方を見てみましょう。

    DATE関数を用いたSELECTステートメント

    出力結果

    DATE関数の中に「’2019-12-07 01:02:03」と指定することで、DATE関数が日付を認識して、日付部分のみを出力しています。

    ポテパンダの一言メモ

    上記で示した「2019-12-07 01:02:03」という例のように、日付・時間のデータ型のフォーマットが定められています。このフォーマットに従ってDATE関数内に日付・時間の指定をしなければ正しく認識されないため注意しましょう。

    •  日付     →「’0000-00-00’」
    •  時間     →「’00:00:00’」
    • 日付・時間   →「’0000-00-00 00:00:00’」
    • タイムスタンプ →「’0000-00-00 00:00:00’」
    •  年      →「0000」

    また、DATE関数を使用して今日の日付を取得することも可能です。

    DATE関数を用いたSELECTステートメント

    出力結果

    「NOW()」という関数がDATE関数の中に入っています。そもそもNOW関数は、現在の日付・時刻を取得するための関数です。NOW関数を使用すると、以下のような出力結果を得ることができます。

    つまり、先ほどのDATE関数の例では以下のようなSELECTステートメントになっていたということになります。

    このように段階を踏んでいくと、なぜ「SELECT DATE(NOW());」というSELECTステートメントで現在の日付が取得できるのかが分かるはずです。

    こちらの見出しで解説してきたように、MySQLのDATE関数では日付を取得することができます。

    【関連記事】
    ▶︎【Ruby入門】日付の基本と操作(Time, Date)
    ▶︎【Java】初心者必見!日付を扱うDateクラスの簡単講座

    MySQLのWHERE DATE句

    MySQLでWHEREとともにDATE関数を用いることによって、日付データが入ったレコードを出力することが可能です。

    以下のようなテーブルがあることを前提とします。

    productsテーブル

    WHERE DATE句を使用し、上記のテーブルから「expiration_date(賞味期限)が2019年12月25日以降の商品」を出力します。

    WHERE DATE句を使用したSELECTステートメント

    出力結果

    WHERE DATE句を使用すれば、DATE型の値から日付を認識して、出力結果をだし分けることが可能です。

    MySQLの日付・時間処理関数まとめ10選

    上記ではDATE関数の主な使い方を解説しましたが、MySQLには他にも日付・時間処理関数が多数存在します。こちらでは知っておくと便利な日付・時間処理関数をご紹介していきましょう。

    CURDATE:現在の日付を出力

    「CURDATE」関数は、現在の日付を出力することができる関数です。先ほどは「DATE(NOW())」という書き方をしましたが、さらにシンプルに取得できるのがこちらの関数となります。

    YEAR/MONTH関数を用いたSELECTステートメント

    出力結果

    YEAR/MONTH:日付の年・月部分を出力

    「YEAR」関数・「MONTH」関数は、指定した日付の年・月部分を出力することができる関数です。

    YEAR/MONTH関数を用いたSELECTステートメント

    出力結果

    TIME/HOUR/MINUTE/SECOND:日付の時刻・時間・分・秒部分を出力

    「YEAR」関数・「MONTH」関数は、指定した日付の時刻・時間・分・秒部分を出力することができる関数です。

    TIME関数を用いたSELECTステートメントと出力結果

    HOUR関数を用いたSELECTステートメントと出力結果

    MINUTE関数を用いたSELECTステートメントと出力結果

    SECOND関数を用いたSELECTステートメントと出力結果

    DAYOFWEEK:指定した日付の曜日をインデックス形式で出力

    「DAYOFWEEK」関数は、指定した日付の曜日をインデックス形式で出力することができる関数です。

    出力される曜日インデックス
    • 日曜日 →「1」
    • 月曜日 →「2」
    • 火曜日 →「3」
    • 水曜日 →「4」
    • 木曜日 →「5」
    • 金曜日 →「6」
    • 土曜日 →「7」

    DAYOFWEEK関数を用いたSELECTステートメント

    出力結果

    DAYNAME:指定した日付の曜日名を出力

    「DAYNAME」関数は、指定した日付の曜日名を出力することができる関数です。

    DAYNAME関数を用いたSELECTステートメント

    出力結果

    MONTHNAME:指定した日付の月名を出力

    「MONTHNAME」関数は、指定した日付の月名を出力することができる関数です。

    MONTHNAME関数を用いたSELECTステートメント

    出力結果

    まとめ

    今回の記事では、MySQL DATEの主な機能やWHERE DATE句の使い方をご紹介しつつ、日付・時間処理関数の使い方を解説していきました。使ってみると非常に簡単な関数が多いため、ぜひ日付・時間処理の際には利用してみてください。

    【関連記事】
    ▶︎MySQL初心者にマスターしてほしいコマンドラインからの使用方法
    ▶︎MySQLのleft joinサンプルコード onとusingの結合条件指定の違いは?



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE