ホームページ > データベース > mysql チュートリアル > 今日を含む過去 30 日間の MySQL レコードを選択するにはどうすればよいですか?

今日を含む過去 30 日間の MySQL レコードを選択するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 13:18:09
オリジナル
955 人が閲覧しました

How to Select MySQL Records from the Last 30 Days, Including Today?

MySQL での今日から過去 30 日間のレコードの選択

MySQL では、次を使用して、指定された日付範囲内にあるレコードを取得できます。次のようなクエリ:

SELECT *
FROM table_name
WHERE date_column BETWEEN start_date AND end_date
ログイン後にコピー

ただし、結果を以前のクエリに限定しようとすると、 30 日以内に、クエリが代わりにすべてのレコードを返すという問題が発生する可能性があります。これに対処するには、適切な日付書式設定構文を理解することが重要です。

提供されたクエリ内:

create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y'))
ログイン後にコピー

DATE_FORMAT 関数が WHERE 句内で誤って使用されています。この関数は、表示目的で取得した日付をフォーマットするために SELECT 句に適用する必要があります:

SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date
FROM table_name
WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
ログイン後にコピー

さらに、create_date 列のデータ型を考慮することが重要です。ゼロ以外の時刻コンポーネントを含む DATETIME として格納されている場合、上記のクエリでは今日のレコードが正確に選択されません。このような場合は、代わりに NOW() を使用してください:

SELECT DATE_FORMAT(create_date, '%m/%d/%Y') AS formatted_date
FROM table_name
WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
ログイン後にコピー

これらの修正を適用すると、クエリは、指定された 30 日の範囲内で作成され、目的の 'mm/dd/yy' でフォーマットされたレコードを正しく取得します。形式。

以上が今日を含む過去 30 日間の MySQL レコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート