我正在尝试从我的数据库中选择用户信息,但我只想检索过去 3 小时内登录的用户
我尝试了以下方法:
SELECT * FROM user WHERE last > CURTIME(), INTERVAL 3 HOUR ORDER BY last DESC
但它不起作用。我想我把 INTERVAL 函数放在了错误的地方。但我尝试了很多方法,但仍然无法正常工作。
你怎么能解决它?有没有比使用 CURTIME() 函数更好的方法?
我正在尝试从我的数据库中选择用户信息,但我只想检索过去 3 小时内登录的用户
我尝试了以下方法:
SELECT * FROM user WHERE last > CURTIME(), INTERVAL 3 HOUR ORDER BY last DESC
但它不起作用。我想我把 INTERVAL 函数放在了错误的地方。但我尝试了很多方法,但仍然无法正常工作。
你怎么能解决它?有没有比使用 CURTIME() 函数更好的方法?
您应该使用NOW()
,而不是CURTIME()
,因为 CURTIME 只是作为字符串的时间,没有日期。因此,如果是凌晨 1 点,则不会包括昨天晚上 11 点登录的人。
SELECT * FROM USER
WHERE last > DATE_SUB(NOW(), INTERVAL 3 HOUR)
ORDER BY last DESC
SUBTIME( curtime( ) , '03:00:00' )
尝试
SELECT * FROM user WHERE ADDDATE(last, INTERVAL 3 HOUR)>CURTIME() ORDER BY last DESC