我的数据库中有两个日期和时间列。我想获取日期大于或等于当前日期和当前时间的行
我使用了下面的查询来获取结果
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 和 Time:12:00 查询它,它只返回时间大于 12:00 的行
仅当日期与要检查的日期相同时,才应检查时间。
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'
mysql 中的 now() 函数会恢复当前时间戳。 你可以使用它