如何在MySQL查询中创建日期间隔?

时间:2014-08-04 08:32:21

标签: php html mysql sql

我想在MySQL查询中创建日期间隔。日期是从HTML表单动态提取的,我想在固定日期之后2天之间搜索某些内容。我已经做了一个例子,但它运作不佳。

SELECT * FROM `sessions` WHERE `start_date` = '2014-05-12'
 or `start_date` between DATE_SUB(start_date, INTERVAL 1 DAY) 
and DATE_ADD(start_date, INTERVAL 1 DAY)

还有其他命题吗?

1 个答案:

答案 0 :(得分:1)

如果每次此查询产生sessions表中的所有行时,我都没有错。我们来看一下查询的这个特定部分,

start_date between DATE_SUB(start_date, INTERVAL 1 DAY) and DATE_ADD(start_date, INTERVAL 1 DAY)

因此,如果行的start_date值为22-07-2014,则查询转换为 start_date between 21-07-2014 and 23-07-2014)

所以每一行都满足条件,因为每个日期x都在x - 1天和x + 1天之间。

因此,如果要执行查询以查找特定间隔之间的日期,请尝试

start_date between DATE_SUB('$start_date', INTERVAL 1 DAY) and DATE_ADD('$start_date', INTERVAL 1 DAY)

代替。请注意,'$start_date'是一个php变量,它是您将行与。

进行比较的日期