首頁 >資料庫 >mysql教程 >如何在 SQL 中僅檢索帶有今天時間戳記的行?

如何在 SQL 中僅檢索帶有今天時間戳記的行?

Susan Sarandon
Susan Sarandon原創
2024-12-03 05:01:13493瀏覽

How to Retrieve Rows with Timestamps from Today Only in SQL?

如何僅從今天選擇帶有時間戳的行

在關係資料庫中,選擇具有特定時間戳的行對於資料分析和分析至關重要報告。常見的場景是檢索當天的記錄,不包括任何時間部分。

目前方法及其限制

提供的查詢SELECT * FROM table WHERE (timestamp > DATE_SUB(now(), INTERVAL 1 DAY));,擷取過去24 小時內的結果。這是因為它使用 DATE_SUB 從當前時間減去一天,其中包括前一天的所有時間戳。

使用DATE 和CURDATE() 實現精確度

至僅根據日期選擇結果,忽略時間部分,可以使用以下查詢使用:

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中文網其他相關文章!

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