选择过去的事件直到当前小时

时间:2015-08-04 13:16:10

标签: mysql

我有一个包含事件数据的表。我还有一份需要查看的日期列表。所以我循环了给定的日期并查询我的表。我需要选择我们在给定日期的事件,如果日期与今天相同,我只需要在特定时间之前发生的事件。时间以军事格式存储,如14:30。

我认为我的查询逻辑过于复杂:

$current_date = date('Y-m-d');
$current_time = date('H:i');

我使用PHP时间和日期的原因,因为我可以从我控制的服务器获得准确的时间。 MySQL的时间已经过了几个小时......

SELECT *
FROM events
WHERE org.id = ".$ID."
AND (
         (
           DATE(events.date) = '".$givenDate."'
           AND
           '".$givenDate."' < '".$current_date."'
         )
         OR
         (
           DATE(events.date) = '".$givenDate."'
           AND
           '".$givenDate."' < '".$current_date."'
           AND
           events.time < '".$current_time."'
          )
     )

1 个答案:

答案 0 :(得分:1)

SELECT *
FROM events
WHERE org.id = ".$ID."
  AND date(events.date) = '".$givenDate."'
  and if ('".$givenDate."' = '".$current_date."', 
           events.time < '".$current_time."', true)