我有一个存储以下数据的MySQL表:
id_event INT(10)
start_date DATE()
end_date DATE()我的目标是显示介于b to id_events之间的所有日期:$start和$sto
到目前为止我已经尝试过了:
SELECT * FROM events WHERE $start >= start_date AND $end <= end_date;但问题是,它可能是在输入$start之前开始的一些事件,在$end之后结束,并且不显示。
我很确定这可能很简单,但是我已经被这个困扰了两天了
提前感谢
发布于 2013-07-23 05:54:20
试一试
SELECT * FROM events WHERE start_date >= '$start' AND end_date <= '$end';
发布于 2013-07-23 05:56:15
首先,您需要确保$start和$end的格式正确。它应该是:'YYYY-mm-dd',例如:'2013-07-22'。
第二,你的逻辑是有缺陷的。$start >= start_date与start_date <= $start相同。这表示输入为$start的日期或之前的任何内容。
最后,您需要在查询中引用您的值,您的日期应该是字符串。
SELECT * FROM events WHERE start_date >= '$start' AND end_date <= '$end';发布于 2013-07-23 05:57:09
试试这个:
SELECT * FROM events
WHERE $start <= end_date and $end >= start_date;

https://stackoverflow.com/questions/17798081
复制相似问题