可能重复:
MySQL 表行中的时间和日期戳
存储 INSERT 语句运行的日期和时间的最佳方法是什么?是否会在查询中包含 Now() 函数?完成后,是否可以计算 72 小时是否已过?
可能重复:
MySQL 表行中的时间和日期戳
存储 INSERT 语句运行的日期和时间的最佳方法是什么?是否会在查询中包含 Now() 函数?完成后,是否可以计算 72 小时是否已过?
查看该TimeStamp
字段,特别是您可以创建表本身来为您完成所有工作:
CREATE TABLE `table` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`updatetime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
在这里,当创建记录(即 INSERT)时,数据库将为您填充字段内容。
DATE_DIFF()
您可以使用or函数运行一个简单的查询TIME_DIFF
来检查任何超过 72 小时的记录。请注意,您可能也想在UNIX_TIMESTAMP()
此处使用该功能。
欲了解更多信息,请查看此处。
如果您使用CURRENT_TIMESTAMP列的默认值定义 datetime 属性,则不需要指定显式值。如果将类型定义为TIMESTAMP,则每次修改记录时都会将其更新为当前时间,除非您专门覆盖该行为。
是否可以计算72小时是否已过?
是的 - 但请确保将所有静态计算放在比较操作的一侧:
SELECT *
FROM yourtable
WHERE NOW() - INTERVAL 72 HOURS > yourtable.created_time;
会比......更快
SELECT *
FROM yourtable
WHERE NOW()> yourtable.created_time + INTERVAL 72 HOURS;
即使没有创建时间的索引。如果您在创建时间上确实有索引,那么第一个查询将不会使用它,但第二个查询会更快。