我有一张包含日期和价格的表格,我正在尝试选择两个日期之间的范围,但我还想在结束日期之后添加额外的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的平均值?
谢谢你们的时间。
答案 0 :(得分:1)
如果您在数据库端执行此操作,则可以创建日期表。然后,您将获取所需的范围并在该日期加入价格。
答案 1 :(得分:-1)
关于这个问题的更新,因为从评论看来我根本就不清楚。
这不是HTML或任何奇怪的。我正在写一个PHP脚本,在价格栏上进行一些数学计算。
对于此计算,我需要获得n天并根据日期范围求平均值。
然而,问题是我需要选择超出日期范围的额外几天。例如,如果我的范围是2013-01-04到2013-01-09,我还需要添加3个额外的数据点,在这种情况下我需要2013-12-31。
问题是,在MySql中,如何选择一系列日期加上超出该范围的行数。不幸的是,我没有ID列。希望这更清楚。