2011-10-08 32 views
0

我有这个表叫test与一个字段叫timesMySQL,如何使用带时间戳的减法?

和我插入时间到是在UNIX时间戳格式:1318055933

的话,我希望做一个更新,其中(当前时间 - 时间)> 600

UPDATE test SET times= 0 WHERE (UNIX_TIMESTAMP() - times> 600); 

这个查询没有按” t似乎工作,

任何想法我做错了什么?

感谢

+0

什么字段类型是'times'?如果它是日期时间类型,则必须计算不同的值,实际上它会更容易,如果更频繁地使用日期时间函数,则会更有意义。 – Anonymous

回答

1

尝试铸造UNIX_TIMESTAMP()函数符号整数。

UPDATE test SET times= 0 WHERE (CAST(UNIX_TIMESTAMP() AS SIGNED) - times> 600); 

我在MySQL manual找到了这个。根据times列的数据类型,您可能也必须投射该数据。

如果您想要减去UNIX_TIMESTAMP()列,您可能希望将结果转换为带符号整数。请参见第11.10节“演员功能和操作员”。