ホームページ >データベース >mysql チュートリアル >SQLで今日のみのタイムスタンプを持つ行を取得するにはどうすればよいですか?
今日のみのタイムスタンプを持つ行を選択する方法
リレーショナル データベースでは、特定のタイムスタンプを持つ行を選択することがデータ分析や分析に不可欠です。報告。一般的なシナリオは、時刻コンポーネントを除いて、現在の日からレコードを取得することです。
現在のアプローチとその制限
提供されたクエリ、SELECT * FROM table WHERE (timestamp > DATE_SUB(now(), INTERVAL 1 DAY));、過去 24 時間以内の結果を取得します。これは、前日のすべてのタイムスタンプを含む DATE_SUB を使用して現在時刻から 1 日を減算するためです。
DATE と CURDATE() を精度に使用する
時間コンポーネントを無視して、日付のみに基づいて結果を選択する場合、次のクエリを実行できます。 used:
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE();
ここで、DATE() はタイムスタンプの日付部分のみを抽出し、CURDATE() は現在の日付を返します。これらの値を比較することで、クエリは今日のものではないタイムスタンプを効果的に除外します。
効率的なインデックスの使用
上記のクエリではインデックスが使用されない可能性があることに注意することが重要です。効率的に。代わりに、次の代替クエリの使用を検討してください。
SELECT * FROM `table` WHERE `timestamp` >= DATE(NOW()) AND `timestamp` < DATE(NOW()) + INTERVAL 1 DAY;
このクエリは、SQL の一般的な最適化手法であるタイムスタンプ列のインデックスを利用します。
以上がSQLで今日のみのタイムスタンプを持つ行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。