2

现在,我对以下查询有疑问:

SELECT * 
FROM table 
WHERE date > CURDATE() 
    OR date = CURDATE() 
    AND time > CURTIME()

它返回日期>今天的行,但我还需要今天日期但时间>当前时间的行。

4

2 回答 2

1

您需要将相关条款放在括号内:

SELECT * 
FROM table 
WHERE date > CURDATE() 
    OR (
      date = CURDATE() 
      AND time > CURTIME()
    )
于 2013-10-06T19:20:30.480 回答
0

您应该使用适当的日期/时间函数,而不是使用复杂的WHERE子句使自己复杂化:

SELECT * FROM TABLE
WHERE ADDTIME(date, time) > NOW()

此链接ADDTIME中有关该功能的更多信息。

于 2013-10-06T19:38:34.370 回答