Fetching rows added last hour

后端 未结 6 1896
北海茫月
北海茫月 2020-12-14 05:20

I keep a record of logins in a table. I have columns for id, ip, date and time. From that record of logins I wanna fetch logins made only in the last hour.

I\'m swe

相关标签:
6条回答
  • 2020-12-14 06:00

    I recommend have one datetime column instead of date and time columns.

    Suppose you have a datetime column called last_login:

    SELECT id, ip_address, last_login
    FROM mytable
    WHERE last_login >= DATE_SUB(NOW(), interval 1 hour);
    
    0 讨论(0)
  • 2020-12-14 06:05

    If you want to implement this into a cronjob, you need to specify the start and end.

    For example, at 2pm, if you want to get the data for the past hour from 13:00:00 until 13:59:59, here's how to do it:

    dateField BETWEEN 
    DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 HOUR), '%Y-%m-%d %H:00:00') 
    AND 
    DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 HOUR), '%Y-%m-%d %H:59:59')
    
    0 讨论(0)
  • 2020-12-14 06:08

    without the specifics, I think Date_Add() would work.. by adding to your where clause an add of NOW negative hours

    (or Date_Sub() )

    0 讨论(0)
  • 2020-12-14 06:11

    it can be done easily using

    select count(*) from logins where datetime>= NOW()- INTERVAL 1 HOUR
    
    0 讨论(0)
  • 2020-12-14 06:16

    Make use of the DATE_SUB() and Now() functions:

    select count(*) as cnt
    from  log
    where date >= DATE_SUB(NOW(),INTERVAL 1 HOUR); 
    

    Hope it helps you : )

    0 讨论(0)
  • 2020-12-14 06:20

    You can also use CURDATE()function

    SELECT
        count(*) AS TotalCount
    FROM
        tblName
    WHERE
        datetime >= DATE_SUB(CURDATE(), INTERVAL 1 HOUR)
    
    0 讨论(0)
提交回复
热议问题