我有一个时间戳列,可以自动更新插入/更新.
我想获取最近10分钟内已更新的行.
SELECT
*
FROM
status
WHERE
code='myCode'
AND
'stamp_updated'
BETWEEN
NOW()
AND
DATE_ADD(NOW() , INTERVAL - 10 MINUTE)
ORDER BY
stamp_updated DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
OMG*_*ies 22
使用:
SELECT *
FROM status
WHERE code = 'myCode'
AND `stamp_updated` BETWEEN DATE_SUB(NOW() , INTERVAL 10 MINUTE)
AND NOW()
ORDER BY stamp_updated DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
BETWEEN操作员的订单很重要 - 你已经倒退了.
... 'stamp_updated' BETWEEN NOW() - INTERVAL 10 MINUTE AND NOW() ...
Run Code Online (Sandbox Code Playgroud)
不确定为什么要使用 Between 构造。MySQL 可以对日期使用逻辑运算符,并且通常速度要快得多。我会用这个:
select *
from status
where code='myCode'
and stamp_updated >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
order by stamp_updated desc
limit 1;
Run Code Online (Sandbox Code Playgroud)