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

解决方案 »

  1.   

    要真能这样就好了,天天都是节假日,我们就能天天放假了什么意思?我是说用表A的enddtm与startdtm做减法啊,是我没理解题目的意思...
      

  2.   

    要真能这样就好了,天天都是节假日,我们就能天天放假了什么意思?我是说用表A的enddtm与startdtm做减法啊,是我没理解题目的意思...
    给你举个例子吧,更好理解
    元旦放假1月1日到1月3日
    现在我要统计1月3日到1月5日之间有几个节假日,正确答案应该是1天
      

  3.   

    要真能这样就好了,天天都是节假日,我们就能天天放假了 hi,能否给我解释一下where条件,我不是很理解
      

  4.   

    where startdtm<=V_enddtm AND enddtm>=V_startdtm
    等价于
    where not (startdtm>V_enddtm or enddtm<V_startdtm)
    看下面这种写法就好理解了