2012-05-02 73 views
2

我在我的数据库中有两个日期和时间列。我想行,其中日期是大于或等于当前日期和当前时间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的行

回答

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' 
0

mysql中的now()函数会修改当前的时间戳。你可以使用