MySQL: 今週のレコードを効率的に選択する
MySQL を使用して今週のレコードを取得するには、その概念を理解することが不可欠ですMySQL での週の番号付け。デフォルトでは、MySQL は ISO 8601 の週番号付けシステムに従い、週は月曜日に始まり日曜日に終わります。
週の開始日と終了日の計算
次の 1 つのアプローチ今週のレコードの選択では、現在の日付に基づいて週の開始日と終了日を計算します。このプロセスには、現在の日付の平日の決定、前の月曜日に到達するまでの日数の計算、その後の今週の月曜日と日曜日の日付の計算が含まれます。
YEARWEEK() 関数の使用
ただし、MySQL では、YEARWEEK() 関数を使用して毎週のレコードを選択するためのより効率的な方法が提供されています。 YEARWEEK() 関数は日付を入力として受け取り、その年の週を表す整数を返します。第 1 週は年の最初の月曜日から始まります。
週次レコードの選択
現在の週のレコードを選択するには、次のクエリを使用できます。
<code class="mysql">SELECT * FROM your_table WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>
上記のクエリでは、引数 1 を指定した YEARWEEK() 関数を利用して、週番号の開始日を強制します。月曜日。各レコードの日付の計算された週番号と現在の週番号を比較することにより、クエリは現在の週以外のレコードを効果的に除外します。
例
日付列を含む次のテーブル:
| id | name | date | |---|---|---| | 1 | John | 2023-11-21 | | 2 | Mary | 2023-11-22 | | 3 | Bob | 2023-11-27 | | 4 | Linda | 2023-11-29 |
現在の日付が 2023 年 11 月 22 日 (水曜日) の場合、上記のクエリは、2023 年 11 月 20 日月曜日から始まる週内の日付を持つレコードのみを返します。 2023 年 11 月 26 日日曜日まで:
| id | name | date | |---|---|---| | 1 | John | 2023-11-21 | | 2 | Mary | 2023-11-22 |
以上がMySQL で今週のレコードを効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。