我写了一些 SQL 来给我两次之间的日期范围,如下所示:
select date_add(x.min_date, interval ((t500.id-1) * 30) minute) period
from (
select '2013-08-05T23:00' as min_date, '2013-08-06T01:00' as max_date
) x,
t500
where date_add(x.min_date, interval ((t500.id-1) * 30) minute) <= x.max_date);
其中 T500 是一个普通表,列 id 为 1 到 500,我用于模拟循环。
现在我希望这会返回:
2013-08-05 23:00:00
2013-08-05 23:30:00
2013-08-06 00:00:00
2013-08-06 00:30:00
2013-08-06 01:00:00
并在那里完成。但相反,它一直持续到 2013-08-06 23:30:00。我尝试了不同的最大日期,它总是将日期返回到一天结束。有人可以解释发生了什么以及如何在我想要的时候让它停止吗?