selecting rows in the last 5 minutes using unix time stamp

后端 未结 2 1340
我寻月下人不归
我寻月下人不归 2020-12-17 03:49

Iam trying to figure out whetere data was save to the db in the las 5 minutes.

SELECT COUNT(id), DATE_FORMAT(`timestamp`, \'%Y-%m-%d %H:%i\')
FROM `table`
WH         


        
相关标签:
2条回答
  • 2020-12-17 04:35

    You could do like that :

    SELECT COUNT(id), DATE_FORMAT(`timestamp`, '%Y-%m-%d %H:%i')
    FROM `table`
    WHERE `timestamp` BETWEEN (DATE_SUB(NOW(),INTERVAL 5 MINUTE)) AND NOW()
    
    0 讨论(0)
  • 2020-12-17 04:45

    Current_timestamp returns the current date as a SQL TIMESTAMP, not a UNIX timestamp, so you'd have to convert using the unix_timestamp function:

    SELECT COUNT(id), from_unixtime(`timestamp` / 1000, '%Y-%m-%d %H:%i')
    FROM `table`
    WHERE `timestamp` >= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 5 MINUTE) * 1000
    

    EDIT:

    As your timestamp column contains unix time, you're also going to have to use from_unixtime to format the date.

    EDIT2:

    In MySQL UNIX time is the number of seconds since epoch (1/1/70), so if your timestamp column contains the number of milliseconds, you'll have to divide by 1000 as well.

    0 讨论(0)
提交回复
热议问题