我的数据库中有两个日期和时间列。我想获得日期大于或等于当前日期和当前时间的行
我使用以下查询来获得结果
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的行
答案 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()函数返回当前时间戳。你可以用那个