我有一个名为test
的表,其中一个字段名为times
。
我以UNIX时间戳格式插入时间:1318055933
然后我想做一个更新,其中(当前时间 - 次数)> 600
UPDATE test SET times= 0 WHERE (UNIX_TIMESTAMP() - times> 600);
此查询似乎无效,
任何想法我做错了什么?
感谢
答案 0 :(得分:1)
尝试将UNIX_TIMESTAMP()
函数转换为有符号整数。
UPDATE test SET times= 0 WHERE (CAST(UNIX_TIMESTAMP() AS SIGNED) - times> 600);
我在MySQL manual找到了这个。根据{{1}}列的数据类型,您可能还必须强制转换它。
如果要减去
times
列,可能需要将结果转换为有符号整数。请参见第11.10节“强制转换函数和运算符”。