Mysql查找两个日期列之间的开始和结束日期范围的出现

时间:2011-12-20 11:14:29

标签: mysql

enter image description here

从上表中, 我将在开始和结束日期之间进行搜索。例如,'2011-12-21'到'2011-12-23'。 从上图中,第5行和第6行将在此日期范围内。即,第5行将包括第21和第22 [2个日期],第6行包含第23个[1个日期]。

所以,我的结果应该是2X300 [即,第5行的利率] + 1X350 [即,第6行的利率]。

即,[950]

请有人帮忙.. 谢谢,

1 个答案:

答案 0 :(得分:1)

SELECT
  SUM(
    IF(DATEDIFF(least(validto, '2011-12-23'),
                greatest(validfrom, '2011-12-21')) >= 0,
       DATEDIFF(least(validto, '2011-12-23'),
                greatest(validfrom, '2011-12-21')) + 1,
       NULL) * rateperday
 ) as total
FROM thedata;