MySQL で今週のレコードを効率的に選択するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-30 07:50:27
オリジナル
250 人が閲覧しました

How do I select records for the current week efficiently in MySQL?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!