【发布时间】:2021-07-22 05:20:20
【问题描述】:
例如,我有一个表名 test_cross_months,数据如下:
| id | start_date | end_date |
|---|---|---|
| 44 | 2020-01-04 | 2020-01-04 |
| 44 | 2020-01-30 | 2020-02-10 |
| 44 | 2020-02-27 | 2020-03-03 |
预期结果:
| id | start_date | end_date |
|---|---|---|
| 44 | 2020-01-04 | 2020-01-04 |
| 44 | 2020-01-30 | 2020-01-31 |
| 44 | 2020-02-01 | 2020-02-10 |
| 44 | 2020-02-27 | 2020-02-29 |
| 44 | 2020-03-01 | 2020-03-03 |
所以对于 |44|2020-01-30 |2020-02-10| 应该有两行,分别是 2020 年 1 月 30 日到 2020 年 1 月 31 日和 2020 年 2 月 1 日到 2020 年 2 月 10 日
我尝试将结束日期与 start_date 的最后一天进行比较,但遇到问题,因为没有为 end_date 范围创建新行。
有没有人可以提出解决方案?
【问题讨论】:
-
如果
44 2020-02-27 2020-04-03怎么办? -
那么它将是 2020-02-27 2020-02-29 2020-03-01 2020-03-31 2020-04-01 2020-04-03
-
非常感谢您的回答,我也会尝试以下 SQL。