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

過去 30 日間の MySQL レコードを効率的に取得するにはどうすればよいですか?

DDD
リリース: 2024-12-16 15:09:11
オリジナル
637 人が閲覧しました

How to Efficiently Retrieve MySQL Records from the Last 30 Days?

MySQL で 30 日の範囲内のレコードを取得する

ユーザーは、MySQL データベースに追加されたレコードを 30 日以内に取得しようとすると、問題が発生することがよくあります。特定の日付範囲、特に日付形式を使用する場合。この記事では、今日から過去 30 日間のレコードを取得し、表示目的で適切な日付形式を確保するための包括的なソリューションを提供することで、この課題に対処します。

質問で提供された元のクエリでは、制限に失敗するという問題が発生しました。過去 30 日間までの選択を行い、代わりにすべてのレコードを取得しました。これを修正するには、WHERE 句ではなく SELECT 句内で DATE_FORMAT 関数を適用することが重要です。修正されたクエリは次のとおりです。

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

CURDATE() は時刻を除き、日付部分のみを取得することに注意することが重要です。 create_date 列にゼロ以外の時刻コンポーネントを含む DATETIME としてデータが格納されている場合、このクエリは今日のレコードを返さない可能性があります。

これに対処するには、代わりに NOW() を使用することを検討してください。

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

この変更により、クエリは、任意の時間コンポーネントを使用して当日に追加されたレコードを含む、過去 30 日以内に追加されたレコードを返すようになります。

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

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