ホームページ  >  記事  >  データベース  >  今週内のレコードを MySQL にクエリするにはどうすればよいですか?

今週内のレコードを MySQL にクエリするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 01:46:03786ブラウズ

How to Query MySQL for Records Within the Current Week?

今週のレコードを MySQL にクエリする

MySQL データベース内の今週のレコードを特定することは、さまざまな方法で行うことができます。提案された方法の 1 つは、平日、前の月曜日、月曜日の日付、将来の日曜日の日付を計算し、計算された日付に基づいてリクエストを行うことを伴います。ただし、YEARWEEK() 関数を利用したより簡潔なアプローチが利用可能です。

YEARWEEK() は、デフォルトの開始日を日曜日に設定して、指定された日付の週番号を返す MySQL 関数です。現在の週 (月曜日から日曜日を含む) 内のレコードをクエリするには、次のように YEARWEEK() を使用します。

<code class="sql">SELECT *
FROM   your_table
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>

このクエリは、日曜日を週の最初の日とみなして、各行の日付列の週番号を決定します。週 (パラメータ 1)。次に、各行の週番号と現在の日付の週番号 (CURDATE()) を比較し、同じ週に該当するレコードを効果的に取得します。

週レコードの日付範囲の修正

質問で提供されているサンプル クエリ:

<code class="sql">SELECT *
FROM   temp
WHERE  yearweek(`date`) = yearweek(curdate())</code>

は、デフォルトの開始日が日曜日であるため、日曜日から土曜日 (2013 年 11 月 17 日から 2013 年 11 月 23 日) までのレコードを誤って取得します。月曜日を週の最初の日として調整し、2013 年 11 月 18 日から 2013 年 11 月 24 日までのレコードを取得するには、次の変更されたクエリを使用します。

<code class="sql">SELECT *
FROM   temp
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)</code>

開始日を月曜日として指定する (パラメーター 1)。 YEARWEEK() 関数は、週の境界が目的の範囲と一致することを保証します。

以上が今週内のレコードを MySQL にクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。