MySQL获取日期在特定时间间隔内的所有行

时间:2016-02-12 08:12:33

标签: mysql sql date

我需要选择日期列在特定时间间隔内的所有行。

在这种情况下,间隔由开始日期,结束日期和间隔定义。例如:

Start: 2016-01-01 (friday)
End: 2016-12-31 (saturday)
Interval: 14

将在2016年的每个星期五选择:

2016-01-01
2016-01-15
2016-01-29
2016-02-12
2016-02-26
2016-03-11
2016-03-25
2016-04-08
2016-04-22
2016-05-06
2016-05-20
2016-06-03
2016-06-17
2016-07-01
2016-07-15
2016-07-29
2016-08-12
2016-08-26
2016-09-09
2016-09-23
2016-10-07
2016-10-21
2016-11-04
2016-11-18
2016-12-02
2016-12-16
2016-12-30

目前,这是在存储过程中完成的,其中循环填充临时表,稍后将其连接。

但是,我正在尝试重写此代码以远离存储过程。

最好的方法是什么?请记住,(一个)表格在日期索引的大约1M记录中非常大,因此任何计算值都可能严重影响性能。

或者,我可以在PHP / RoR中计算区间中的所有日期并使用大量的IN子句,但希望有更好的解决方案。

0 个答案:

没有答案