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';
-
MySQLで2つの日付の間を検索する方法|BETWEEN句の使い方を実例で解説
MySQLで2つの日付の間を検索するには?MySQLで特定の2つの日付の間に該当するレコードを検索したい場合は、BETWEENキーワードを使用します。本記事では、サンプルテーブルの作成からデータの挿入、そしてBETWEEN句を使った日付範囲検索まで、具体的な手順を順番に解説していきます。1. サンプルテーブルの作成まず、顧客名とオファー期間(開始日・終了日)を管理するテーブルを作成しましょう。mysql> create table DemoTable1456 -> ( -> Custo
-
MySQLに日付レコードを挿入する最も簡単な方法は?STR_TO_DATE()関数の使い方を解説
MySQLで日付レコードを挿入・変換するには?MySQLでは、STR_TO_DATE() 関数を使うことで、文字列として保存された日付データを日付形式に変換できます。以下が基本の構文です。SELECT STR_TO_DATE(yourColumnName, %b %Y) FROM yourTableName;この記事では、実際にテーブルを作成し、「Jan 2018」のような「月 年」形式の文字列データを日付に変換する手順を、具体例とともにわかりやすく解説します。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは入社年月を格納するカラムを持つテーブルを定義します。