1. ホーム
  2. mysql

[解決済み] MySQLクエリ - 今日から過去30日間の記録

2022-05-09 17:17:33

質問

過去30日以内にデータベースに追加されたすべてのレコードを返したいのですが、どうすればいいですか? 表示の関係で、日付をmm/dd/yyに変換する必要があります。

create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y')) 

私のステートメントは、レコードを過去30日間に制限することに失敗しました。

どなたか正しい方向を教えてください。 あと少しのような気がします。

ありがとうございます、今週もよろしくお願いします。

解決方法は?

を適用する必要があります。 DATE_FORMAT の中に SELECT 節ではなく WHERE 節があります。

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()

また、以下のことに注意してください。 CURDATE() が返すのは DATE の部分を保存します。 create_date として DATETIME のように、時間部分を埋めてしまうと、このクエリでは今日のレコードは選択されません。

このような場合は NOW の代わりに

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()