mysql时间戳查询

时间:2011-03-27 20:46:49

标签: mysql

我需要在其特定的某一行上进行某些更新时自动更新php timestamp列类型。可以吗?

时间戳的格式为“0000-00-00 00:00:00”

我还想将当前(系统)时间戳与列中已设置的值进行比较。例如,我想将当前系统时间戳与DB值进行比较,如果当前值比DB值提前10分钟,则执行某个操作。我怎么检查这个?

4 个答案:

答案 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)