MySQL を使用して今日から過去 30 日間のデータベース レコードを選択する方法
この質問は、過去 30 日以内に追加されたレコードを取得することを目的としています。表示には日付変換が必要です。提供されたクエリは WHERE 句内で DATE_FORMAT を使用しようとしますが、意図したとおりに選択を制限しません。
解決策
正しい解決策には、DATE_FORMAT を WHERE 句内で適用することが含まれます。 SELECT 句:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
理由訂正
MySQL の DATE_FORMAT 関数は日付を特定の形式に変換しますが、基になる日付値は変更しません。したがって、対象の日付範囲を指定する WHERE 句の後に適用する必要があります。
追加の考慮事項
create_date が DATETIME として保存され、非ゼロ時間コンポーネントでは、WHERE 句で CURDATE() を使用しても、今日のレコードは選択されません。これを考慮するには、代わりに NOW() を使用してください:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
以上が今日を含む過去 30 日間の MySQL レコードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。