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