这是一个有趣的想法。
UPDATE table1
SET field1 = UNIX_TIMESTAMP()
WHERE
field1 <= UNIX_TIMESTAMP() - 600
AND field2 > UNIX_TIMESTAMP() - 1000
三个时间戳是否会导致不同的值...或者MySQL是否有可能智能地评估这些值并在所有这三个中使用结果?
答案 0 :(得分:1)
有趣的是,UNIX_TIMESTAMP()
没有正确记录。对于NOW()
,documentation非常明确:
NOW()
返回一个常量时间,表示时间 声明开始执行。 (在存储的函数或触发器中, NOW()返回函数或触发语句的时间 开始执行。)这与SYSDATE()
的行为不同 返回它执行的确切时间。
我认为 UNIX_TIMETAMP()
遵循与NOW()
相同的规则,但我并非100%确定。
答案 1 :(得分:0)
我想你不想重复unix_timestamp()。
SET @now = NOW();
UPDATE table1
SET field1 = @now
WHERE
field1 <= @now - 600
AND field2 > @now - 1000;