我准备了mysql
查询,按日期范围搜索:
select * from active_listings
where open_date >= '$start_date'
AND open_date <='$end_date'
效果很好。
我在mysql中有两列:open_date和next_open_date。如何执行包含open_date
和next_open_date
。
我尝试过:
select * from active_listings
where (open_date,next_open_date) >= '$start_date'
AND (open_date,next_open_date) <='$end_date')
我没有结果。
有人可以指导我或向我说明如何在日期范围内使用多列。
谢谢!
答案 0 :(得分:2)
为避免歧义,您必须将范围分开,如下所示:
select *
from active_listings
where (open_date >= '$start_date' AND open_date <='$end_date')
OR (next_open_date >= '$start_date' AND next_open_date <='$end_date');
或者,有点短:
select *
from active_listings
WHERE open_date BETWEEN '$start_date' AND '$end_date'
OR next_open_date BETWEEN '$start_date' AND '$end_date';
答案 1 :(得分:1)
不完全确定你想要什么......你是在尝试计算重叠时期还是什么?
提示:您可以使用BETWEEN子句替换&#34;大于等于AND小于等于&#34;的组合。条件。
SELECT *
FROM active_listings
WHERE
open_date BETWEEN '$start_date' AND '$end_date' OR
next_open_date BETWEEN '$start_date' AND '$end_date'