自MySQL数据库最后编辑以来如何获得时间

时间:2012-10-22 22:50:40

标签: php mysql sql

我需要知道自MySQL数据库中的表格编辑以来的时间。有没有办法在PHP中这样做?我能想到的唯一方法是获取更新时间,并将其与当前时间进行比较(这会有点麻烦)。

3 个答案:

答案 0 :(得分:2)

SELECT TIMEDIFF(CURRENT_TIME, UPDATE_TIME)
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'my_table'

答案 1 :(得分:1)

一种解决方案是添加timestamp字段,每当更改行时自动更新。 然后,您可以通过选择上一个更新值来找到上次更改时间:

# Add a timestamp column:
ALTER TABLE [TABLENAME] add column `ts_update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;

# Get the last update value:
SELECT MAX(ts_update) from [TABLENAME];

答案 2 :(得分:0)

由于SHOW TABLE STATUS似乎没有返回标准结果集,所以有点痛苦。我试图将它用作子查询的每一种方式都失败了。您似乎需要以编程方式解决这个问题。

SHOW TABLE STATUS
WHERE name = 'target_table';

如果您关注时区,只需单独SELECT NOW()来获取mysql服务器的时间。

注意:这只会显示更新表架构的时间。如果您想知道上次插入/编辑行的时间,您必须添加Amirshk建议的时间戳列。