先週の MySQL データの抽出 (日曜日開始)
このガイドでは、前の日曜日から始まる過去 1 週間の MySQL データを取得する方法を説明します。 これを実現するために、MySQL の日付関数を活用します。
MySQL クエリ
次のクエリは、前の日曜日から開始して過去 7 日間のレコードのみを含むようにデータを効率的にフィルター処理します。
<code class="language-sql">SELECT id FROM tbname WHERE date BETWEEN date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY) AND CURDATE();</code>
詳しい説明
CURDATE()
: 現在の日付を返します。DAYOFWEEK(CURDATE())
: 現在の日付の曜日 (1=日曜日、2=月曜日、...、7=土曜日) を決定します。INTERVAL DAYOFWEEK(CURDATE())-1 DAY
: 前の日曜日に達するまでに減算する日数を計算します。 今日が日曜日の場合は 0 日が減算されます。今日が月曜日の場合は 1 日減算されます。date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY)
: 現在の日付から計算された日数を減算し、前の日曜日の日付を求めます。BETWEEN ... AND CURDATE()
: 「日付」列が前の日曜日から現在の日付までの範囲内にあるレコードを選択します。具体例
次のサンプル テーブルについて考えてみましょう:
id | date |
---|---|
2 | 2011-05-14 09:17:25 |
5 | 2011-05-16 09:17:25 |
6 | 2011-05-17 09:17:25 |
8 | 2011-05-20 09:17:25 |
15 | 2011-05-22 09:17:25 |
上記のクエリを実行すると、次の結果が返されます:
id |
---|
5 |
6 |
8 |
これは、前の日曜日から開始して、過去 1 週間以内のエントリに対応する ID (5、6、および 8) を正確に取得します。 具体的な結果は、クエリが実行された現在の日付によって異なることに注意してください。
以上が日曜日から過去 1 週間の MySQL データを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。