简体   繁体   English

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

[英]how to check given date exist in table or not?

in my database table contains 在我的数据库表中包含

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

if i give Start_date ="2016-02-15" End_date ="2016-04-30" then my output should be "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

i think you just trying to get plans now valid or not by start date end date . 我认为您只是想在开始日期结束日期之前使计划现在有效或无效。

try this 尝试这个

SELECT * 
FROM plantb 
WHERE CusID='1' 
      AND AccID='1001' 
      AND SerID='0123456789' 
      AND CURDATE() BETWEEN  Start  and  End   
ORDER BY `Start` ASC
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 ))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM