datetime选择-15分钟间隔显示错误结果

时间:2015-06-01 06:59:08

标签: mysql datetime intervals

对于房间预订页面,我正在查询3个表格中的条目。日期时间值在一个表中,如果房间密钥已经签出,则另一个表保留信息。另一个表保留预订信息。如果当前时间已超过预定时间的开始时间至少15分钟并且该密钥尚未签出,则该条目将被删除。问题是,它还删除了未来的预订,其中预订的开始时间尚未过去。我的查询看起来像这样。

SELECT dt.field_reservation_datetime_value
     , dt.entity_id
     , co.field_reservation_checked_out_value
     , co.entity_id
     , res.reservation_id 
  FROM field_data_field_reservation_datetime dt 
  JOIN field_data_field_reservation_checked_out co 
    ON co.entity_id = dt.entity_id 
  JOIN studyroom_reservation res 
    ON res.reservation_id = co.entity_id 
 WHERE co.field_reservation_checked_out_value = 0 
   AND DATE (dt.field_reservation_datetime_value) <= NOW() - INTERVAL 15 MINUTE

现在是上午9:52,这不应该出现在接下来的2小时38分钟。我得到的是:

enter image description here

知道我可能做错了吗?

编辑:添加了表别名和屏幕截图

1 个答案:

答案 0 :(得分:0)

使用以下代码解决它

SELECT dt.*, co.*, res.*
FROM field_data_field_reservation_datetime AS dt 
JOIN field_data_field_reservation_checked_out AS co 
ON co.entity_id = dt.entity_id
JOIN studyroom_reservation as res 
ON res.reservation_id = co.entity_id 
WHERE co.field_reservation_checked_out_value = 0 
AND ((dt.field_reservation_datetime_value) 
<= DATE_FORMAT(NOW() - INTERVAL 15 MINUTE,'%Y-%m-%d %H:%i:%s'))