在最后一小时添加了行

Mic*_*ons 47 mysql datetime date-range

我在表格中记录了登录信息.我有id,ip,日期和时间的列.从登录记录中我想获取仅在最后一小时内创建的登录.

我在时间和日期函数上扫描MySQL文档,但我似乎无法将它们正确地组合在一起.

有人能帮助我吗?

SDR*_*yes 126

使用DATE_SUB()和Now()函数:

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

希望它可以帮助你:)

  • 以UTC格式保存数据,需要使用UTC_TIMESTAMP()而不是NOW()。 (3认同)

pho*_*nix 10

如果要将其实现到 cronjob 中,则需要指定开始和结束。

例如,在下午 2 点,如果您想获取过去一小时 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')
Run Code Online (Sandbox Code Playgroud)


Var*_*ath 6

它可以很容易地使用

select count(*) from logins where datetime>= NOW()- INTERVAL 1 HOUR
Run Code Online (Sandbox Code Playgroud)