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

MySQLで指定した2つの日付の間にあるレコードの合計値を取得する方法

はじめに

MySQLで特定の2つの日付の間に存在するレコードの数値合計を求めたい場合は、BETWEENキーワードを使用します。BETWEEN句は、指定した範囲(開始日と終了日を含む)に該当するレコードを抽出できる便利な演算子です。

この記事では、実際にテーブルを作成し、日付の範囲を指定して合計値を取得する手順を解説します。

1. テーブルの作成

まず、サンプル用のテーブルを作成します。ここでは「Value(数値)」と「PurchaseDate(購入日時)」というカラムを持つテーブルを定義します。

mysql> create table DemoTable1444
  -> (
  -> Value int,
  -> PurchaseDate datetime
  -> );
Query OK, 0 rows affected (0.45 sec)

2. レコードの挿入

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

mysql> insert into DemoTable1444 values(40,'2019-01-10');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1444 values(100,'2019-10-03');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1444 values(170,'2019-11-21');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1444 values(70,'2018-12-05');
Query OK, 1 row affected (0.11 sec)

3. テーブル内の全レコードを確認

SELECT文でテーブルの中身を確認してみましょう。

mysql> select * from DemoTable1444;

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

+-------+---------------------+
| Value | PurchaseDate |
+-------+---------------------+
| 40 | 2019-01-10 00:00:00 |
| 100 | 2019-10-03 00:00:00 |
| 170 | 2019-11-21 00:00:00 |
| 70 | 2018-12-05 00:00:00 |
+-------+---------------------+
4 rows in set (0.00 sec)

4. 指定した期間の合計値を取得するクエリ

ここが本題です。以下のクエリを実行すると、「2019-10-02」から「2019-12-31」までの期間に該当するレコードのValue列の合計を取得できます。

mysql> select sum(Value) from DemoTable1444 where PurchaseDate between '2019-10-02' and '2019-12-31';

実行結果:

+------------+
| sum(Value) |
+------------+
| 270 |
+------------+
1 row in set (0.02 sec)

解説

この結果から、条件に一致したのは「2019-10-03」の100と「2019-11-21」の170の2レコードであり、その合計270が返されていることがわかります。「2019-01-10」と「2018-12-05」のレコードは範囲外のため除外されています。

注意点

  • BETWEENは両端の日付を含む範囲指定です。境界日のデータも含めたい場合に適しています。
  • PurchaseDateカラムはdatetime型のため、時刻情報も考慮されます。終了日に時刻を持つレコードまで確実に含めたい場合は、「between '2019-10-02' and '2019-12-31 23:59:59'」のように時刻まで指定するか、">= " と "< " を組み合わせた条件式を使うと安全です。

このように、BETWEENとSUM関数を組み合わせることで、売上集計や期間別レポートなど、日付範囲による合計処理を簡単に実装できます。

  1. iOSで2つの日付の差分を取得する方法を解説【Swift入門】

    iOSアプリ開発で2つの日付の差分を計算するには? 日付同士の差分を求めるのは、実はとてもシンプルです。重要なのは、DateFormatterとCalendarという2つのクラスを正しく使いこなすことです。本記事では、Swiftを使って2つの日付の差分(日数)を取得する手順を、サンプルコード付きでわかりやすく解説します。 DateFormatterクラスとは まず活用するのが、Foundationフレームワークに含まれる DateFormatter クラスです。DateFormatterは、Dateオブジェクトを文字列形式に変換したり、逆に日付・時刻のテキスト表現をDateオブジェクトへ変換

  2. Androidで2つの日付の差分(日数)を取得する方法【サンプルコード付き】

    はじめに この記事では、Androidアプリで2つの日付の差分(日数)を取得する方法を、実際に動作するサンプルコードとともに解説します。日付の差分計算は、利用期間の表示やイベントまでの残り日数のカウントなど、さまざまな場面で役立つ基本的な処理です。 実装の手順 ステップ1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_main.xml)の編集 res/layout/ac