MySQL从现在到10分钟之前选择时间戳列的行

krx*_*krx 7 mysql sql

我有一个时间戳列,可以自动更新插入/更新.

我想获取最近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操作员的订单很重要 - 你已经倒退了.


a1e*_*x07 7

 ... 'stamp_updated' BETWEEN NOW() - INTERVAL 10 MINUTE AND NOW()  ...
Run Code Online (Sandbox Code Playgroud)


Gre*_*ore 5

不确定为什么要使用 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)