为范围

时间:2018-05-13 13:50:07

标签: mysql

我有表格,其中包含personIds,开始日期和结束日期

我需要选择每个personId-date对,但日期在两个指定的范围内。

例如:

personId | startDate | endDate
1 | 2018-05-10 | 2018-05-13

将返回

personId | date
1 | 2018-05-10
1 | 2018-05-11
1 | 2018-05-12
1 | 2018-05-13

1 个答案:

答案 0 :(得分:0)

此处的一个选项是创建一个包含2018年所有日期(包括其他年份)的日历表。然后,只需将此日历表内连接到给定人员的记录。

SELECT c.date
FROM calendar c
INNER JOIN yourTable t
    ON c.date BETWEEN t.startDate AND t.endDate;

See here有关在MySQL中创建日历表的一些好选项。