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