【问题标题】:Mysql Find occurrence of start and end date range between two date columnsMysql在两个日期列之间查找开始和结束日期范围的出现
【发布时间】:2011-12-20 11:14:29
【问题描述】:

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

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

即,[950]

请任何人帮助.. 谢谢,

【问题讨论】:

    标签: mysql


    【解决方案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;
    

    【讨论】:

    • 哇..谢谢你'newtoover'..我会检查不同的组合,然后将你的答案标记为正确..谢谢你..漂亮..
    猜你喜欢
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多