指定した期間内のデータをSQLでフィルタリングする方法

この記事では、SQLを用いて特定の期間内のデータをフィルタリングする方法について詳しく説明します。データベースから必要な情報だけを効率よく取得するためには、時間や日付を条件に設定することがよくあります。特にビジネスシーンでの日報、週報、月報の作成において、このスキルは非常に役立ちます。

目次

SQLと日付・時間の基本

SQLで日付や時間を扱う場合、そのデータ型や関数について知っておくことが重要です。一般的には`DATE`、`TIME`、`DATETIME`などのデータ型が使用されます。

主なデータ型

  • DATE:日付のみを格納(YYYY-MM-DD)
  • TIME:時間のみを格納(HH:MM:SS)
  • DATETIME:日付と時間を格納(YYYY-MM-DD HH:MM:SS)

日付・時間関数の例

  • NOW():現在の日付と時間を返す
  • CURDATE():現在の日付を返す
  • CURTIME():現在の時間を返す

指定期間内のデータをフィルタリングするSQLクエリ

指定した期間内のデータを取得するためには、`WHERE`句を使って条件を指定します。

基本形

SELECT * FROM テーブル名
WHERE 日付カラム名 BETWEEN '開始日' AND '終了日';

具体的な例

SELECT * FROM sales
WHERE sale_date BETWEEN '2022-01-01' AND '2022-01-31';

日本語のテーブルデータを用いた例

以下は、`sales`テーブルから2022年1月1日から2022年1月31日までのデータをフィルタリングする例です。

売上ID商品名販売日売上金額
1りんご2022-01-02200円
2みかん2022-01-10150円
3ぶどう2022-01-20300円
売上データのフィルタリング例

注意点と最適化

日付データをフィルタリングする際の注意点としては、時間まで考慮する必要がある場合があります。また、日付フォーマットが一致していないと、うまくフィルタリングできない場合があります。

時間を考慮する場合

SELECT * FROM sales
WHERE sale_datetime BETWEEN '2022-01-01 00:00:00' AND '2022-01-31 23:59:59';

日付フォーマットの統一

SELECT * FROM sales
WHERE DATE_FORMAT(sale_date, '%Y-%m-%d') BETWEEN '2022-01-01' AND '2022-01-31';

まとめ

SQLで特定の期間内のデータを効率よくフィルタリングする方法には、`WHERE`句と`BETWEEN`キーワードを用います。日付や時間のデータ型、関数を理解し、適切なクエリを作成することが重要です。このスキルは、ビジネスレポートや分析においても大いに役立つでしょう。

コメント

コメントする

目次