找出mysql中两个日期范围之间重叠的天数
我有一张有日期范围的桌子。我想知道它是否与另一个范围重叠,并计算重叠的天数 尝试只在mysql中实现,而不需要通过前端语言PHP中的循环找出mysql中两个日期范围之间重叠的天数,mysql,date,Mysql,Date,我有一张有日期范围的桌子。我想知道它是否与另一个范围重叠,并计算重叠的天数 尝试只在mysql中实现,而不需要通过前端语言PHP中的循环 id | start_date | end_date 1 | 2019-01-02 | 2019-01-07 2 | 2019-01-03 | 2019-01-03 3 | 2019-01-06 | 2019-01-09 日期范围start=2019-01-04,日期范围end=2019-01-07 日期格式为YYYY-MM-DD 希望最终结果是: i
id | start_date | end_date
1 | 2019-01-02 | 2019-01-07
2 | 2019-01-03 | 2019-01-03
3 | 2019-01-06 | 2019-01-09
日期范围start=2019-01-04
,日期范围end=2019-01-07
日期格式为YYYY-MM-DD
希望最终结果是:
id | start_date | end_date | total_days
1 | 2019-01-02 | 2019-01-07 | 4
2 | 2019-01-03 | 2019-01-03 | 0
3 | 2019-01-05 | 2019-01-09 | 3
尝试使用MySQL DATEDIFF()函数:
MySQL DATEDIFF()返回两个日期之间的天数或
日期时间。此函数仅计算每个日期的日期部分
表情
为什么结果中第三行的开始日期应该是
2019-01-05
而不是2019-01-06
?试试最大(开始日期,开始范围)
和最小(结束日期,结束范围)
和DATEDIFF
你读过这个问题吗?
DATEDIFF(expr1,expr2);