ホームページ  >  記事  >  データベース  >  YEARWEEK() を使用して MySQL で今週のレコードを取得するにはどうすればよいですか?

YEARWEEK() を使用して MySQL で今週のレコードを取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-26 03:00:27969ブラウズ

How to Retrieve Records for the Current Week in MySQL Using YEARWEEK()?

MySQL: 今週のレコードの取得

この質問は、期間内の特定の期間に基づいて MySQL テーブルからレコードを取得することを中心に展開します。今週。このタスクを達成するために、提供されたアルゴリズムとより効率的な MySQL クエリを調べてみましょう。

最初のアルゴリズムには、曜日の計算、前の月曜日の日付の決定、定義された日付範囲内のレコードのフェッチが含まれていました。このアルゴリズムは機能しますが、複数の手順と計算が必要です。

幸いなことに、MySQL には、このプロセスを簡素化できる組み込み関数が用意されています。 YEARWEEK() 関数、特にパラメーター '1' を使用すると、特定の日付と年の週番号を決定できます。

YEARWEEK() を使用した効率的なクエリ

次のクエリは、YEARWEEK() 関数を利用して今週のレコードを取得します。

SELECT *
FROM   temp
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)

クエリについて

  • YEARWEEK() は計算します。週の開始日 (パラメーター '1' の場合は月曜日) を考慮した、指定された日付の週番号。
  • CURDATE() は現在の日付を取得します。
  • その後、クエリはレコードをフィルターします。日付列の YEARWEEK() 値は、現在の日付の YEARWEEK() 値と一致します。

追加の質問への対処

で提供されるクエリ質問では、月曜日から始まる週のレコードが正確に選択されません。月曜日が週の 1 日とみなされ、前の週の日曜日が含まれます (ISO 形式)。これを修正するには、クエリを次のように変更します。

SELECT *
FROM   temp
WHERE  YEARWEEK(`date`, 7) = YEARWEEK(CURDATE(), 7)

概要

YEARWEEK() 関数は、以下に基づいてレコードを選択する簡単かつ効率的な方法を提供します。 MySQL の週番号。複雑な計算や中間ステップが不要になります。 YEARWEEK() 関数を理解すると、今週または 1 年の特定の期間のレコードを簡単に取得できます。

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

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