首页 >数据库 >mysql教程 >如何在MySQL中检索带有今天时间戳的记录?

如何在MySQL中检索带有今天时间戳的记录?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 09:20:02846浏览

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 形式返回当前日期日期value.

警告:

虽然此查询达到了您的预期结果,但它可能无法以最佳方式执行。在时间戳列上使用 DATE() 会阻止 MySQL 有效地使用该列上的任何索引。

为了更有效的解决方案,您可以创建一个专用的日期列并将时间戳的日期部分存储在该列中。这允许 MySQL 在日期列上使用索引来加快查询速度。

下面是如何创建专用日期列并更新其值的示例:

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

以上是如何在MySQL中检索带有今天时间戳的记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn