-1

我有一个包含日期和价格的表格,我正在尝试选择两个日期之间的范围,但我还想在结束日期之后添加 n 个额外的行。

这是一个数据样本:

2013-01-09 29.67,
2013-01-08 29.51,
2013-01-07 28.69,
2013-01-04 28.01,
2013-01-03 27.88,
2013-01-02 27.44,
2012-12-31 26.20,

例如我在做:

SELECT * 
FROM $table_name 
WHERE date between '2013-01-09' AND '2013-01-04' 
ORDER BY date DESC

我想要做的是额外添加 3 行(不是天,因为你可以看到它们不是连续的)所以像 2013-01-04 加上 3 行到 2012-12-31 结束。

我希望我很清楚,因为即使只是解释问题也很困难,想象一下尝试在网上找到解决方案!


按要求更新。

所以我会尝试改写和简化我遇到的问题。忘掉我到目前为止写的所有东西,从一个新的观点开始。我将把我遇到的问题分成两个步骤。此外,我将使用更简单的数字作为示例。新数据表:

2013-01-09 7
2013-01-08 1
2013-01-07 9
2013-01-04 1
2013-01-03 8
2013-01-02 5
2012-31-12 6

我想计算给定日期范围内这些值的平均值。因此,如果数据范围是 2013-01-09 到 2013-01-03 并且周期 2 的平均值,则数据将如下所示:

2013-01-09 7 4
2013-01-08 1 5
2013-01-07 9 5
2013-01-04 1 4.5
2013-01-03 8 6.5
2013-01-02 5 不适用

为此,我没有问题。问题就出现在这里。请注意,对于范围的第一个日期,我无法计算周期 2 的平均值,因为我之前没有数据选择。所以问题是,我如何在日期范围之后选择 1 个额外点(特别是 2012-31-12 的数据),以便我也可以计算 2013-01-02 的平均值?

谢谢你们的时间。

4

2 回答 2

1

如果您在数据库端执行此操作,则可以创建一个日期表。然后,您将获取您想要的范围并在日期加入价格。

于 2013-01-11T18:25:08.417 回答
0

更新问题,因为从评论看来我真的一点都不清楚。

这不是 html 或任何奇怪的东西。我正在编写一个 php 脚本,对价格列进行一些数学计算。

对于这个计算,我需要得到 n 天并根据日期范围取平均值。

但是,问题是我需要在日期范围之外再选择几天。例如,如果我的范围是从 2013-01-04 到 2013-01-09,我还需要添加 3 个额外的数据点,在这种情况下将我带到 2013-12-31。

问题是,在 MySql 中,我如何选择日期范围加上超出该范围的 n 行数。不幸的是,我没有 ID 列。希望这更清楚。

于 2013-01-14T10:53:13.480 回答