现在有一张表A
holidayid startdtm enddtm
1 2015/10/1 2015/10/4
2 2015/1/1 2015/1/2
3 2015/2/18 2015/2/21
4 2015/4/5 2015/4/6
5 2015/5/1 2015/5/2
6 2015/6/20 2015/6/21
7 2015/9/27 2015/9/28
两个时间参数 V_startdtm ,V_enddtm
求着两个时间参数之间的holiday天数?改怎么取呢 如果这个时间段内有多个holiday 又如何取呢
------解决思路----------------------
1、A表中的时间段不会存在交叉的现象吧
2、起止时间是日期类型吗?
先按不存在时间交叉 字段是日期字段给你写一个吧,如果不是自行修改下吧
select SUM(LEAST(V_enddtm,enddtm)-GREATEST(startdtm,V_startdtm)+1) AS S
from A
WHERE startdtm<=V_enddtm AND enddtm>=V_startdtm