如何在日期之间编写查询以搜索数据

时间:2016-09-16 10:15:21

标签: mysql sql

在数据库中,我有以下数据:

super.showAd()

如果我从&01; 08/01/2016 00:00:00'至&00; 09/05/2016 00:00:00'它给了我以上的结果。

但问题是,如果我从< 08/01/2016 00:00:00'到2016年9月2日00:00:00'它没有向我显示结果。

我的查询是:

From date : 2016-09-01 06:00:00
To date : 2016-09-04 08:00:00

2 个答案:

答案 0 :(得分:0)

首先,学会使用正确的显式JOIN语法。简单的规则:从不FROM子句中使用逗号;始终使用JOIN

重叠的逻辑不正确。见下面的最后两行:

SELECT *
FROM car_availability c JOIN
     car_trip_availability ct
     ON c.car_id = ct.car_id 
WHERE c.car_category_id IN ($car_category_id_list) AND
      c.is_booked = :is_booked AND
      ct.trip_type_id =:trip_type_id AND
      ct.from_location_id =:from_location_id AND
      ct.to_location_id = :to_location_id AND
      c.from_date_time <= :to_date_time AND
      c.to_date_time >= :from_date_time;

如果第一个在第二个结束之前开始而第一个在第一个结束之后结束,则两个周期重叠。这似乎是你想要的逻辑。

您还应该注意$car_category_id_list。您不能将列表作为参数传递。

答案 1 :(得分:-1)

只需尝试一下!

SELECT * FROM tablename 在哪里,栏目BETWEEN&#39; 2012-12-25 00:00:00&#39; AND&#39; 2012-12-25 23:59:59&#39;

记录[Between] 来自:&#39; 2012-12-25 00:00:00&#39; 致:&#39; 2012-12-25 23:59:59&#39;