在MySQL中存储插入日期和时间

在MySQL中存储插入日期和时间,mysql,Mysql,可能重复: 存储INSERT语句运行的日期和时间的最佳方法是什么?是否在查询中包含Now()函数?完成后,是否可以计算72小时是否已过去?查看时间戳字段,特别是您可以创建表格本身来完成所有工作: CREATE TABLE `table` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `updatetime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) 在这里,当创建记录(即插入)时,数据库将为您填充字段内容 您可

可能重复:


存储INSERT语句运行的日期和时间的最佳方法是什么?是否在查询中包含Now()函数?完成后,是否可以计算72小时是否已过去?

查看
时间戳
字段,特别是您可以创建表格本身来完成所有工作:

CREATE TABLE `table` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `updatetime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
在这里,当创建记录(即插入)时,数据库将为您填充字段内容


您可以使用
DATE\u DIFF()
TIME\u DIFF
函数运行一个简单的查询,以检查超过72小时的任何记录。注意,您可能也想在此处使用
UNIX\u TIMESTAMP()
函数


有关详细信息,请查看。

如果使用默认值为列定义datetime属性,则无需指定显式值。如果将类型定义为,则每次修改记录时,该类型都将更新到当前时间,除非您专门重写该行为

是否可以计算72小时是否已经过去

是-但请确保将所有静态计算放在比较操作的一侧:

SELECT *
FROM yourtable
WHERE NOW() - INTERVAL 72 HOURS > yourtable.created_time;
将比……快

SELECT *
FROM yourtable
WHERE NOW()> yourtable.created_time + INTERVAL 72 HOURS;

即使没有创建时间的索引。如果您在创建时间上有索引,那么第一个查询将不会使用它,但第二个查询将运行得更快。

您想知道数据类型吗?好的,谢谢。我需要做什么来检查72小时是否已经过去了?您可以使用DATE_DIFF()或UNIX_TIMESTAMP()运行一个简单的查询,但性能会很差。@symcbean是对的,请看一下他的比较方法