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

MySQLで2つの日付の間のレコードを取得する方法|BETWEEN演算子の使い方

MySQLで2つの日付の間に存在する日付レコードを取得するには、BETWEENキーワードを使用します。BETWEENは指定した範囲に該当するレコードを簡単に抽出できる便利な演算子です。ここでは、実際にテーブルを作成しながら具体的な使い方を見ていきましょう。

サンプルテーブルの作成

まず、デモ用のテーブルを作成します。

mysql> create table DemoTable681(AdmissionDate datetime);
Query OK, 0 rows affected (0.75 sec)

テーブルへのデータ挿入

次に、INSERTコマンドを使ってテーブルに複数のレコードを挿入します。

mysql> insert into DemoTable681 values('2019-01-21');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable681 values('2019-11-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable681 values('2019-12-03');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable681 values('2019-07-03');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable681 values('2019-02-04');
Query OK, 1 row affected (0.34 sec)

登録データの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable681;

実行結果は以下のとおりです。

+---------------------+
| AdmissionDate |
+---------------------+
| 2019-01-21 00:00:00 |
| 2019-11-01 00:00:00 |
| 2019-12-03 00:00:00 |
| 2019-07-03 00:00:00 |
| 2019-02-04 00:00:00 |
+---------------------+
5 rows in set (0.00 sec)

2つの日付の間のレコードを抽出するクエリ

それが本題です。BETWEENを使って、指定した2つの日付の間にあるレコードを取得してみましょう。以下のクエリでは、「2019-02-01」から「2019-12-01」までの範囲に含まれるレコードを抽出しています。

mysql> select *from DemoTable681 where AdmissionDate between '2019-02-01' and '2019-12-01';

実行結果は次のようになります。

+---------------------+
| AdmissionDate |
+---------------------+
| 2019-11-01 00:00:00 |
| 2019-07-03 00:00:00 |
| 2019-02-04 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

このように、範囲外の「2019-01-21」と「2019-12-03」が除外され、条件に一致する3件だけが取得できました。

BETWEEN使用時の注意点

BETWEEN演算子は両端の値を含む(以上・以下の条件)という点に注意してください。上記の例では「2019-02-01」や「2019-12-01」そのもののレコードも一致対象となります。

また、datetime型のカラムに対して日付のみを指定した場合、時刻は「00:00:00」として扱われます。そのため、「2019-12-01 15:30:00」のように時刻を持つレコードは範囲外になる可能性があります。時刻を含めて正確に検索したい場合は、次のように時刻まで明示的に指定すると安心です。

select *from DemoTable681 where AdmissionDate between '2019-02-01 00:00:00' and '2019-12-01 23:59:59';
  1. MySQLで2つの日付の間を検索する方法|BETWEEN句の使い方を実例で解説

    MySQLで2つの日付の間を検索するには?MySQLで特定の2つの日付の間に該当するレコードを検索したい場合は、BETWEENキーワードを使用します。本記事では、サンプルテーブルの作成からデータの挿入、そしてBETWEEN句を使った日付範囲検索まで、具体的な手順を順番に解説していきます。1. サンプルテーブルの作成まず、顧客名とオファー期間(開始日・終了日)を管理するテーブルを作成しましょう。mysql> create table DemoTable1456    -> (    -> Custo

  2. MySQLに日付レコードを挿入する最も簡単な方法は?STR_TO_DATE()関数の使い方を解説

    MySQLで日付レコードを挿入・変換するには?MySQLでは、STR_TO_DATE() 関数を使うことで、文字列として保存された日付データを日付形式に変換できます。以下が基本の構文です。SELECT STR_TO_DATE(yourColumnName, %b %Y) FROM yourTableName;この記事では、実際にテーブルを作成し、「Jan 2018」のような「月 年」形式の文字列データを日付に変換する手順を、具体例とともにわかりやすく解説します。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは入社年月を格納するカラムを持つテーブルを定義します。