この記事では、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-02 | 200円 |
2 | みかん | 2022-01-10 | 150円 |
3 | ぶどう | 2022-01-20 | 300円 |
注意点と最適化
日付データをフィルタリングする際の注意点としては、時間まで考慮する必要がある場合があります。また、日付フォーマットが一致していないと、うまくフィルタリングできない場合があります。
時間を考慮する場合
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`キーワードを用います。日付や時間のデータ型、関数を理解し、適切なクエリを作成することが重要です。このスキルは、ビジネスレポートや分析においても大いに役立つでしょう。
created by Rinker
¥4,554
(2024/11/21 10:54:58時点 Amazon調べ-詳細)
コメント