如何检查表中是否存在给定日期?

时间:2016-04-20 07:15:57

标签: php mysql

我的数据库表中的

包含

id  Start_date End_date      plans
-- ---------   ----------  --------
1  0000-00-00  2015-12-31  classic
2  2016-01-01  0000-00-00  Mini

如果我给Start_date =“2016-02-15”End_date =“2016-04-30”     然后我的输出应该是“2 2016-01-01 0000-00-00迷你

in case if i give Start_date ="2015-06-01" End_date ="2016-04-30"
then my output should be
1  0000-00-00  2015-12-31  classic and 2  2016-01-01  0000-00-00  Mini
previously my query was 
SELECT * FROM plantb WHERE CusID='1' AND AccID='1001' AND SerID='0123456789' AND ( Start_date BETWEEN '2015-06-01' AND '2016-04-30' ) OR ( End_date BETWEEN '2015-06-01' and '2016-04-30') ORDER BY `Start` ASC

2 个答案:

答案 0 :(得分:0)

我认为你只是想在开始日期结束日期之前获得有效或无效的计划。

试试这个

SELECT * 
FROM plantb 
WHERE CusID='1' 
      AND AccID='1001' 
      AND SerID='0123456789' 
      AND CURDATE() BETWEEN  Start  and  End   
ORDER BY `Start` ASC

答案 1 :(得分:0)

SELECT * FROM `plantb` WHERE `CusID` = 1 AND `AccID` = 1001 AND `SerID` = 0123456789 
AND 
    ((SELECT CASE `Start_date` WHEN '0000-00-00' THEN (`End_date` >= '2015-06-01') ELSE ('2015-06-01' BETWEEN `Start_date` AND `End_date`) END ) OR (SELECT CASE `End_date` WHEN '0000-00-00' THEN (`Start_date` <= '2016-04-30') ELSE ('2016-04-30' BETWEEN `Start_date` AND `End_date`) END ))