Подтвердить что ты не робот

Выборка строк добавлена в последний час

Я веду учет логинов в таблице. У меня есть столбцы для id, ip, даты и времени. Из этой записи логинов я хочу получить логины, сделанные только за последний час.

Я просматриваю документы MySQL по функциям времени и даты, но просто не могу их правильно объединить.

Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Используйте функции DATE_SUB() и Now():

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

Надеюсь, это поможет вам:)

Ответ 2

Я рекомендую иметь один столбец datetime вместо столбцов даты и времени.

Предположим, у вас есть столбец datetime с именем last_login:

SELECT id, ip_address, last_login
FROM mytable
WHERE last_login >= DATE_SUB(NOW(), interval 1 hour);

Ответ 3

Если вы хотите реализовать это в cronjob, вам нужно указать начало и конец.

Например, в 14:00, если вы хотите получить данные за прошедший час с 13:00:00 до 13:59:59, вот как это сделать:

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')

Ответ 4

это можно сделать легко, используя

select count(*) from logins where datetime>= NOW()- INTERVAL 1 HOUR

Ответ 5

Вы также можете использовать функцию CURDATE()

SELECT
    count(*) AS TotalCount
FROM
    tblName
WHERE
    datetime >= DATE_SUB(CURDATE(), INTERVAL 1 HOUR)

Ответ 6

без специфики, я думаю, что Date_Add() будет работать.. добавив в ваше предложение where добавление отрицательных часов NOW

(или Date_Sub())