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

時間を無視して特定の日の MySQL レコードを効率的に取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-07 12:59:11
オリジナル
471 人が閲覧しました

How to Efficiently Retrieve MySQL Records for Specific Days, Ignoring Time?

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

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