MySQL で今週のレコードを選択的に取得する方法
MySQL データベースで今週のレコードを取得するには、 YEARWEEK()関数。このアプローチにより、複数の SQL ステートメントを実行する必要性が軽減されます。
YEARWEEK() を利用すると、最初のパラメーターを日付列 (この場合は日付) として指定し、2 番目のパラメーターを 1 に設定して、週は月曜日から始まります。結果を YEARWEEK(CURDATE(), 1) と比較することで、現在の月曜日から日曜日までの範囲内のレコードを効果的に取得できます。
クエリの問題への対処
指定されたクエリは、2013 年 11 月 18 日 (月曜日) から 2013 年 11 月 24 日 (日曜日) ではなく、2013 年 11 月 17 日 (日曜日) から 2013 年 11 月 23 日 (土曜日) の範囲のレコードを選択します。この矛盾は、データベースがデフォルトで日曜日から週を初期化するため、実質的に日曜日から土曜日までの週の範囲が生じるためです。
この問題を修正するには、YEARWEEK() の 2 番目のパラメータを手動で 1 に設定する必要があります。または、次の修正されたクエリに示すように、WEEK() 関数を使用して週の開始日を月曜日に明示的に指定します。
<code class="sql">SELECT * FROM your_table WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>
代わりに、WEEK() 関数を使用して週の開始日を明示的に設定することもできます。日から月曜日まで:
<code class="sql">SELECT * FROM your_table WHERE WEEK(`date`, 1) = WEEK(CURDATE(), 1)</code>
以上が質問の側面に焦点を当てた、いくつかのタイトルのオプションを次に示します。 * MySQL で今週 (月曜日から始まる) のレコードを取得するにはどうすればよいですか? * MySQL クエリ: なぜ間違ったレコードを取得してしまうのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。