時刻を除く MySQL の特定の日からレコードを取得する
日時として保存された一時データを操作する場合、以下に基づいてレコードを取得する必要があります。時間に関係なく特定の日。このシナリオは、毎日のメトリクスを追跡したり、特定の 24 時間内のイベントを分析したりするアプリケーションで頻繁に発生します。
これを実現するには、DATE(datecolumns) = '2012-12- などのセレクターの使用を避けることが不可欠です。パフォーマンスに大きな影響を与え、インデックスの使用を妨げる可能性があるためです。
代わりに、 BETWEEN 演算子。たとえば、次のクエリは、指定されたテーブルから 2012 年 12 月 25 日のレコードを取得します。
SELECT * FROM tablename WHERE columname BETWEEN '2012-12-25 00:00:00' AND '2012-12-25 23:59:59'
このアプローチにより、インデックスの使用が可能になり、最適なクエリ パフォーマンスが保証されます。
最近では、特定の MySQL バージョンでは、1 日の終わりとして「23:59:59」を使用することは信頼できない可能性があることを発見しました。これに対処するには、クエリを次のように更新することをお勧めします:
SELECT * FROM tablename WHERE columname >= '2012-12-25 00:00:00' AND columname < '2012-12-26 00:00:00'
特定の構文は MySQL のバージョンによって若干異なる場合がありますが、時間ベースの比較を除外し、範囲セレクターを使用する原則は変わりません。効率的なクエリのパフォーマンスにとって重要です。
以上が時間を無視して特定の日の MySQL レコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。