【问题标题】:mysql query to check greater than date and timemysql查询检查大于日期和时间
【发布时间】:2012-05-02 12:44:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: php mysql


    【解决方案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'
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-07-01
        • 1970-01-01
        • 2012-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        相关资源
        最近更新 更多