0

我正在尝试从我的数据库中选择用户信息,但我只想检索过去 3 小时内登录的用户

我尝试了以下方法:

SELECT * FROM user  WHERE last > CURTIME(), INTERVAL 3 HOUR ORDER BY last DESC

但它不起作用。我想我把 INTERVAL 函数放在了错误的地方。但我尝试了很多方法,但仍然无法正常工作。

你怎么能解决它?有没有比使用 CURTIME() 函数更好的方法?

4

3 回答 3

3

您应该使用NOW(),而不是CURTIME(),因为 CURTIME 只是作为字符串的时间,没有日期。因此,如果是凌晨 1 点,则不会包括昨天晚上 11 点登录的人。

SELECT * FROM USER
WHERE last > DATE_SUB(NOW(), INTERVAL 3 HOUR)
ORDER BY last DESC
于 2012-09-01T20:24:39.717 回答
2
SUBTIME( curtime( ) , '03:00:00' )
于 2013-07-07T14:30:43.123 回答
0

尝试

SELECT * FROM user  WHERE ADDDATE(last, INTERVAL 3 HOUR)>CURTIME() ORDER BY last DESC 
于 2012-09-01T19:59:26.353 回答