【初心者向け】SQLのWHERE句で日付を比較する方法まとめ!
  • facebookページ
  • twitterページ
  • 2020.07.31

    【初心者向け】SQLのWHERE句で日付を比較する方法まとめ!

    データを抽出する際、日付を比較して条件に合ったデータのみを選択したいケースはよくあります。

    本記事では、SQLのWHERE句で日付を比較する方法について、各処理をサンプルSQLを交えながらご紹介していきたいと思います。

    ポテパンダの一言メモ

    本記事では、MySQLを使用して動作確認を行っています。
    サンプルで使用している関数などはデータベース毎に異なりますので、読み替えが必要です。

    SQLの日付比較サンプル用データベース


    SQLでの日付比較方法の解説を始める前に、本記事で利用するテーブルについて掲載しておきます。

    今回使用するのは「test1」という下記のデータが格納されたテーブルのみです。

    test1

    SQLの日付比較1: 同一日付


    SQLで同一日付のデータを取得したい場合には「=(イコール)」演算子を利用します。

    サンプル

    今回のサンプルでは「2020-07-26 14:00:00」のデータと同一日付のデータを取得してみたいと思います。

    実行した結果が下記の通りです。

    完全一致のデータのみ取得可能

    同一日付のデータを取得したい場合と記述しましたが、「=(イコール)」演算子では完全一致したデータのみしか取得出来ません。

    例えば下記のように、時刻が異なる場合、同一日付でもデータを取得出来ません。

    同じく下記のように、日付のみを指定した場合にも同一データ無しと判定されます。

    日付のみで判定するためには?

    ではDATETIME型で格納されたデータを日付のみで判定するためには、どうするのかというとMySQLの場合、DATE_FORMAT関数を利用することで実現可能です。

    これでテーブルに格納された日時と現在日時を日付のみの同じフォーマットに変換しています。

    実行した結果は下記の通りです。

    SQLの日付比較2: 以前の日付


    SQLで指定した日付以前のデータを取得したい場合には「<(小なり)」または「<=(小なりイコール)」演算子を利用します。

    サンプル

    今回のサンプルでは「2020-07-29 00:00:00」の日付以前のデータを取得してみたいと思います。

    実行した結果が下記の通りです。

    SQLの日付比較3: 以降の日付


    SQLで指定した日付以降のデータを取得したい場合には「>(大なり)」または「>=(大なりイコール)」演算子を利用します。

    サンプル

    今回のサンプルでは「2020-07-28 14:00:00」の日付以降のデータ(同一日時を含む)を取得してみたいと思います。

    実行した結果が下記の通りです。

    SQLの日付比較4: 期間内の日付


    SQLで指定した期間内の日付データを取得したい場合には「BETWEEN」を利用します。

    サンプル

    今回のサンプルでは「2020年7月」のデータを取得してみたいと思います。

    「WHERE カラム名 BETWEEN 日付 AND 日付」で指定した2つの日付期間内のデータを取得します。

    実行した結果が下記の通りです。

    SQLの日付比較5: 期間外の日付


    SQLで指定した期間内の日付データ以外を取得したい場合には「NOT BETWEEN」を利用します。

    サンプル

    今回のサンプルでは「2020年8月以外」のデータを取得してみたいと思います。

    「WHERE カラム名 NOT BETWEEN 日付 AND 日付」で指定した2つの日付期間内のデータ以外を取得します。

    実行した結果が下記の通りです。

    さいごに:SQLの日付比較はデータベースを扱う上での必須知識


    本記事では、SQLの日付比較でデータを取得する方法についてご紹介してきました。

    データベースを扱う上で日付を指定してデータを取得するケースは頻繁に訪れます。

    しっかりと処理内容を理解して、適切なデータを取得出来るよう繰り返し練習してみましょう。



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE