2

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

我已经使用下面的查询来获得结果

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 的行

4

2 回答 2

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'
于 2012-05-02T14:29:33.563 回答
0

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

于 2012-05-02T12:45:51.713 回答