在MySQL中存储INSERT的日期和时间

时间:2012-10-12 09:05:19

标签: mysql

  

可能重复:
  Time & Date Stamp in a MySQL table row

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

2 个答案:

答案 0 :(得分:1)

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

CREATE TABLE `table` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `updatetime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

这里,当创建记录(即INSERT)时,数据库将为您填充字段内容。

您可以使用DATE_DIFF()TIME_DIFF函数运行简单查询,以检查是否有超过72小时的记录。请注意,您也可以在此处使用UNIX_TIMESTAMP()功能。

有关详细信息,请查看here

答案 1 :(得分:1)

如果使用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;

即使没有创建时间的索引。如果你确实有一个创建时间的索引,那么第一个查询将不会使用它,但第二个查询会更快。