【发布时间】:2015-05-15 14:22:25
【问题描述】:
我有一张包含股市每日数据的表格。它由每天的不同行数组成。我在表中有一个名为“高”的列。现在我需要计算过去 3 周的 MAX(High)。例如:- 如果今天是星期三,我需要计算上周星期五和本周星期一、星期二的 MAX。我知道如果我使用这样的查询手动知道日期,我可以做到这一点。
Select MAX(HIGH) from table_name where date>='date'
但我不想这样做,我只想用 PHP 编写的程序自动执行此操作。我怎样才能实现这一点 PHP 或 SQL 的任何帮助都是可观的。我的表只有 6 列
date,time,open,high,low,close
假设我的桌子是这样的
date time open high low close
2015-05-06 09:30:00 2012.50 2020.5 2016.5 2014.0
2015-05-06 09:31:00 2013.50 2021.5 2014.5 2016.0
2015-05-06 09:32:00 2014.50 2021.75 2017.5 2013.0
2015-05-07 09:30:00 2011.50 2019.5 2018.5 2014.0
2015-05-07 09:31:00 2014.50 2022.5 2016.5 2015.0
2015-05-07 09:32:00 2012.50 2026.5 2017.5 2016.0
2015-05-08 09:30:00 2010.50 2024.5 2015.5 2017.0
2015-05-08 09:31:00 2013.50 2026.5 2017.5 2018.0
2015-05-08 09:32:00 2014.50 2028.5 2015.5 2019.0
2015-05-08 09:33:00 2014.50 2022.5 2017.5 2012.0
2015-05-11 09:30:00 2017.50 2025.5 2018.5 2013.0
2015-05-11 09:31:00 2018.50 2027.5 2019.5 2016.0
2015-05-11 09:32:00 2019.50 2024.5 2011.5 2017.0
2015-05-11 09:33:00 2020.50 2026.5 2017.5 2014.0
2015-05-12 09:30:00 2018.50 2023.5 2018.5 2018.0
2015-05-12 09:31:00 2017.50 2024.5 2017.5 2014.0
2015-05-12 09:32:00 2018.50 2023.5 2018.5 2013.0
2015-05-12 09:33:00 2017.50 2024.5 2019.5 2014.0
2015-05-12 09:34:00 2016.50 2023.5 2016.5 2012.0
2015-05-12 09:35:00 2017.50 2025.5 2018.5 2011.0
如果今天的日期是 2015 年 5 月 13 日(星期三),我需要最后 3 个工作日的 MAX(高),即 2015 年 5 月 5 日 12,11,08,即 2028.5。
【问题讨论】:
-
这是一个非常好的问题。我认为可以通过一些示例数据和您的预期结果对其进行一些改进,以便其他人可以准确地看到您要查找的内容。
-
打开和关闭是关键字,你应该改变列名
-
^日期和时间也是如此,把它扔进去。
-
创建一个 sql fiddle,我将向您展示如何使用 php 完成此操作
-
另外,我有点困惑。如果这一天是星期三,您不想要星期五、星期一和星期二吗?