日期:2014-05-18  浏览次数:20408 次

时间区间查询
表TB 字段如下:
计划ID
计划名
计划开始时间
计划结束时间

问题:
计划开始时间 时间A ~ 时间B
计划结束时间 时间C ~ 时间D

我想查询计划开始时时间 大于时间A 小于时间B 
但是存在以下情况:
①输入时间A 不输入时间B
②输入时间B 不输入时间A
③输入时间A 输入时间B
④时间A、时间B都不输入
计划结束时间类似以上情况
请问这样子的查询条件如何写


------解决方案--------------------
where语句改一下
SQL code

WHERE 
    LEFT(JO011,10) >= CASE WHEN @in_jhks1 IS NULL THEN LEFT(JO011,10) 
                           ELSE @in_jhks1 END
AND
    LEFT(JO012,10) <= CASE WHEN @in_jhks2 IS NULL THEN LEFT(JO012,10)
                           ELSE @in_jhks2 END
END