mysql查询检查大于日期和时间

时间:2012-05-02 12:44:59

标签: php mysql

我的数据库中有两个日期和时间列。我想获得日期大于或等于当前日期和当前时间的行

我使用以下查询来获得结果

SELECT DISTINCT     
A.appt_fromUser,A.date,A.time,A.appt_styleType,B.*,A.appt_shoutID,A.shout_status 
from appoint_db A 
INNER JOIN checkedin_db B ON A.appt_id=B.appid 
where A.appt_toUser='$userid' 
and A.date>='$date' 
and InChair='0' 
and A.time>='$time'

然而,这并不像我希望的那样有效。

例如,如果我有两行:

2012/05/30时间:6.00
2012/05/30时间:13.00

我用2012/05/02的日期和时间:12:00查询,它只返回时间大于12:00的行

2 个答案:

答案 0 :(得分:1)

您应该只检查日期是否与您要检查的日期相同。

SELECT DISTINCT     
A.appt_fromUser,A.date,A.time,A.appt_styleType,B.*,A.appt_shoutID,A.shout_status
from appoint_db A
INNER JOIN checkedin_db B ON A.appt_id=B.appid 
where A.appt_toUser='$userid'
and   InChair='0'
and (
       A.date>'$date'
       OR (
           A.date = '$date'
           AND
           A.time>='$time'
       )
    )

您还可以在选择之前连接日期和时间。我不会(可能不适用于某些语言环境)。

SELECT DISTINCT
A.appt_fromUser,A.date,A.time,A.appt_styleType,B.*,A.appt_shoutID,A.shout_status
from appoint_db A
INNER JOIN checkedin_db B ON A.appt_id=B.appid
where A.appt_toUser=1
and InChair='0'
AND CONCAT(A.date, ' ', A.time) >= '$date $time'

答案 1 :(得分:0)

mysql中的now()函数返回当前时间戳。你可以用那个