CURTIME在MYSQL中添加和减去

时间:2012-09-01 19:55:30

标签: mysql

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

我尝试了以下内容:

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

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

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

3 个答案:

答案 0 :(得分:3)

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

SELECT * FROM USER
WHERE last > DATE_SUB(NOW(), INTERVAL 3 HOUR)
ORDER BY last DESC

答案 1 :(得分:2)

SUBTIME( curtime( ) , '03:00:00' )

答案 2 :(得分:0)

尝试

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