ホームページ >データベース >mysql チュートリアル >今週内のレコードを MySQL にクエリするにはどうすればよいですか?
今週のレコードを 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 サイトの他の関連記事を参照してください。