如何僅從今天選擇帶有時間戳的行
在關係資料庫中,選擇具有特定時間戳的行對於資料分析和分析至關重要報告。常見的場景是檢索當天的記錄,不包括任何時間部分。
目前方法及其限制
提供的查詢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中文網其他相關文章!