首頁  >  文章  >  資料庫  >  如何在MySQL中檢索帶有今天時間戳記的記錄?

如何在MySQL中檢索帶有今天時間戳記的記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-13 09:20:02791瀏覽

How to Retrieve Records with Today's Timestamp in MySQL?

如何選擇帶有當天時間戳的行

在資料庫管理系統中,通常會儲存資料記錄的時間戳以追蹤它們的記錄時間建立或修改。但是,當您需要從帶有時間戳記的表中檢索資料時,您可能會遇到根據特定日期選擇記錄的挑戰。

問題陳述

您有一個資料庫帶有時間戳列的表,並且您只想檢索當天建立的記錄。您最初使用下面的查詢,但注意到它返回過去24 小時的記錄,而不僅僅是今天的日期:

SELECT * FROM `table` WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 1 DAY));

解決方案

要選擇具有忽略時間而取得當天的時間戳,可以使用以下查詢:

SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
  • DATE() 函數傳回時間戳記的日期部分,刪除時間資訊。
  • CURDATE() 函數以 MySQL 日期值的形式傳回目前日期。

警告:

雖然此查詢達到了您的預期結果,但它可能不會達到您的預期結果發揮最佳性能。在時間戳列上使用 DATE() 會阻止 MySQL 有效地使用該列上的任何索引。

為了更有效的解決方案,您可以建立一個專用的日期列並將時間戳記的日期部分儲存在該列中。這允許 MySQL 在日期列上使用索引來加快查詢速度。

以下是如何建立專用日期列並更新其值的範例:

ALTER TABLE `table` ADD COLUMN `date` DATE NOT NULL;
UPDATE `table` SET `date` = DATE(`timestamp`);

以上是如何在MySQL中檢索帶有今天時間戳記的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn