質問の側面に焦点を当てた、いくつかのタイトルのオプションを次に示します。 * MySQL で今週 (月曜日から始まる) のレコードを取得するにはどうすればよいですか? * MySQL クエリ: なぜ間違ったレコードを取得してしまうのか

Patricia Arquette
リリース: 2024-10-26 16:48:30
オリジナル
985 人が閲覧しました

Here are a few title options, focusing on the question aspect:

* How to Retrieve Records for the Current Week in MySQL (Starting on Monday)? 
* MySQL Query: Why am I Getting Records for the Wrong Week? 
* Selecting Records for the Current Week in MySQL:

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

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