我有一张桌子,里面有学校宿舍及其开始和结束日期。
|yrq |start_date|end_date | |--------------------------| |B233|2013-01-07|2013-03-23| |B232|2012-09-24|2012-12-20| |B231|2012-06-25|2012-09-13| |B124|2012-04-02|2012-06-21| |B123|2012-01-09|2012-03-27| ...
单独获取yrqs,意味着yrqs完全落在日期范围内:
SELECT yrq FROM yrq WHERE start_date>='2012-02-01' AND end_date<='2013-02-01';
即使日期属于B124, B231, B232
和B233
,也会返回除第一个和最后一个yrq以外的所有内容(B123
)。很高兴!
我发现如何包含yrqs,意思是如果日期落在yrq的中间,包括它(翻转'&lt;'和'&gt;'标志以及传入的开始和结束日期):< BR />
SELECT yrq FROM yrq WHERE start_date<='2013-02-01' AND end_date>='2012-02-01';
这将返回列出的所有季度,而不是其他季度。很高兴!
我遇到问题的查询是获得一个yrq,其中开始日期和结束日期完全在其中。示例:我想找到2013-02-01
到2013-02-15
的日期范围的yrq,即B233
。
我正在调用运行查询的php函数。我正在通过一个包容性的旗帜,我没有答案的情况应该在包容性案例中返回一个结果。为了封装所有包容性案例,我计划运行查询,我首先没有答案,如果它返回一个空集,则运行上面的包含性查询。如果有一种更优雅的方式,我很满意。
谢谢!
答案 0 :(得分:0)
此查询返回yrq,其中参数位于start_date和end_date中。这是你在找什么?
SELECT *
FROM yrq
WHERE '2013-02-01' BETWEEN start_date AND end_date
AND '2013-02-15' BETWEEN start_date AND end_date