MySQL Select rows where timestamp column between now and 10 minutes ago

前端 未结 3 499
清酒与你
清酒与你 2020-12-14 05:02

I have a timestamp column that auto updates on insert/update.

I want to get the rows that have been updated within the last 10 minutes.

SELECT
             


        
相关标签:
3条回答
  • 2020-12-14 05:05

    Not sure why you're using the between construct. MySQL can use logical operators on dates, and usually significantly faster. I would use this:

    select * 
      from status 
      where code='myCode' 
            and stamp_updated >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) 
      order by stamp_updated desc 
      limit 1;
    
    0 讨论(0)
  • 2020-12-14 05:11

    Use:

      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
    

    Order in the BETWEEN operator matters - you had it backwards.

    0 讨论(0)
  • 2020-12-14 05:21
     ... 'stamp_updated' BETWEEN NOW() - INTERVAL 10 MINUTE AND NOW()  ...
    
    0 讨论(0)
提交回复
热议问题