Mysql:选择日期之间的范围,并在该范围内添加额外的行(而不是天)

时间:2013-01-11 17:41:11

标签: mysql

我有一张包含日期和价格的表格,我正在尝试选择两个日期之间的范围,但我还想在结束日期之后添加额外的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结束。< / p>

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


按要求更新。

所以我会尝试重新措辞并简化我遇到的问题。忘掉我到目前为止所写的一切,从一个新的观点开始。我将打破我遇到的问题分为两步。另外,我将使用更简单的数字作为示例。新数据表:

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  NA

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

谢谢你们的时间。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

关于这个问题的更新,因为从评论看来我根本就不清楚。

这不是HTML或任何奇怪的。我正在写一个PHP脚本,在价格栏上进行一些数学计算。

对于此计算,我需要获得n天并根据日期范围求平均值。

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

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