我需要在其特定的某一行上进行某些更新时自动更新php timestamp列类型。可以吗?
时间戳的格式为“0000-00-00 00:00:00”
我还想将当前(系统)时间戳与列中已设置的值进行比较。例如,我想将当前系统时间戳与DB值进行比较,如果当前值比DB值提前10分钟,则执行某个操作。我怎么检查这个?
答案 0 :(得分:4)
最简单的方法是在数据库中的行上设置on update CURRENT_TIMESTAMP
(假设您使用的是MYSQL)。另一种方法是在插入时插入NOW()
的值。
查询数据库时,不要只写SELECT timestamp FROM...
来写SELECT UNIX_TIMESTAMP(timestamp) as stamp FROM...
。这将作为UNIX时间戳返回给您。然后,您可以将其与time()
中的值进行比较,并检查数据库时间戳是否超过600秒。
答案 1 :(得分:0)
MySQL函数NOW()
将始终为您提供当前的timnestamp。
这会将modified
字段设置为当前时间戳:
UPDATE user SET realname='John Smith', modified=NOW()
或者这将为您提供过去10分钟内修改的记录。
SELECT * FROM user WHERE modified > TIMESTAMPADD(MINUTE, -10, NOW())
答案 2 :(得分:0)
`updated` TIMESTAMP DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
答案 3 :(得分:-1)
'timestamp列'不是php。这是mysql。默认情况下,只要更改或插入记录,MySQL就会自动更新任何给定表中的第一个时间戳列。
要根据该时间戳进行选择,您需要
SELECT field,field,field
FROM yourtable
WHERE (timestampfield, DATE_SUB(now(), INTERVAL 10 MINUTE)