今日のタイムスタンプを持つ行の選択
データベースでは、多くの場合、特定の期間に基づいてレコードを取得することが重要です。一般的なシナリオの 1 つは、今日のタイムスタンプを持つレコードを選択することです。この記事では、この特定の問題に対する解決策を紹介します。
この質問は、時刻に関係なく、タイムスタンプ フィールドに今日の日付が含まれるデータベース テーブルからレコードを選択することに関するものでした。提供されたクエリは、DATE_SUB() を使用して現在時刻から 24 時間を減算し、過去 24 時間の結果を取得します。
日付のみに基づいて結果を選択するには、DATE() と CURDATE() を利用できます。機能。変更されたクエリは次のとおりです。
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
このクエリでは、DATE() はタイムスタンプ フィールドから日付コンポーネントを抽出し、時間情報を破棄します。 CURDATE() は現在の日付を返し、今日のレコードのみを確実に取得します。
ただし、このクエリはインデックスを効率的に利用しない可能性があることに注意することが重要です。より最適化されたソリューションについては、インデックス付きの日付列を使用する次のクエリを検討してください。
SELECT * FROM `table` WHERE `date` = DATE(NOW())
このクエリは日付列と現在の日付を直接比較するため、日付列のインデックスを活用できます。より高速な実行。
以上がデータベース内の今日のタイムスタンプを持つ行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。