遇到的问题 大致描述为   
保险单 有生效日期 和 终止日期 这是一个时间段。
其次 审核日期 比如 2010.1.1至2011.12.31 这是第二个时间段。有可能保险单的有效期 在审核日期 之内,之外,包含其中 三种情况(保险单有效期最多也保1年,审核日期区间也是一年)现在我想求两个时间段的交集,请高手指点下思路, 给点简单语句提示。不尽感激。。现环境只有MYSQL 数据库,在命令行下操作中~~~希望得到的交集结果 是 天数, 然后还得执行 天数/365  

解决方案 »

  1.   

    select * from tb where ttime between '2010-02-03' and '2010-03-05'
      

  2.   

    计算临时表CREATE TEMPORARY TABLE datediff select *, datediff(end_da+1, start_da) as datediff from car where plc_no like '%CTP%' group by brand, engine having datediff>1;起保日期(start_da) 和 终止日期(end_da) 都数据记录在库
    审核日期 和 保单有效期 在当前数据库中有个交集只有如下三种情况:
    审核日期为a ,审核日期回滚一年为b
    问题可以理解为
    start_da|————————|end_da
                   b|————————|a
    start_da|————————|end_da
           b|————————|astart_da|————————|end_da
     b|————————|a
    我想求 时间段交集  结果为天数
      

  3.   

    目的是要计算 所谓的车辆年  就是 交集/365
    假定审核日期是2010-1-1  那回滚一年2009-12-31end_da+1 < 审核日期
    select datediff(end_da+1, "2009-12-31") as datediff from car;end_da+1 = 审核日期  车辆年=1end_da+1 > 审核日期
    date_diff("2010-1-1", start_da)我现在是这么做的  有没有更好的办法实现  求助