【发布时间】:2019-12-15 17:02:57
【问题描述】:
我有一个包含股票市场数据(开盘价、高价、低价、收盘价)的表格,但日期的顺序是随机的:
Date Open Hi Lo Close
12/10/2019 313.82 314.54 312.81 313.58
11/22/2019 311.09 311.24 309.85 310.96
11/25/2019 311.98 313.37 311.98 313.37
11/26/2019 313.41 314.28 313.06 314.08
11/27/2019 314.61 315.48 314.37 315.48
11/29/2019 314.86 315.13 314.06 314.31
12/2/2019 314.59 314.66 311.17 311.64
12/3/2019 308.65 309.64 307.13 309.55
我在 PHP 变量中有另一个值(比如 $BaseValue),以及开始日期和结束日期($startdt 和 $enddt)。
1) 我的要求是从 HI 列中提取值,如果它在给定的开始日期和结束日期之间按时间顺序在第一个日期超过 $BaseValue。
例如,如果 $BaseValue=314,startdt=11/22,enddt=12/2,那么我想检索 Date (11/26/19),因为它是 Hi 值的最早日期(314.28) 超出了给定日期范围内的 $Basevalue。选择语句应返回 Hi 值 (314.28) 和日期 (11/26/19)。
2) 此外,我还需要在给定的日期持续时间内从 HI 列中检索 HIGHEST 值和日期。在上述情况下,它应该返回 315.48 和对应的日期 11/27。
表格不是按时间顺序排列的 - 它是随机填充的。
使用 MAX 函数及其各种组合,我根本无法获得第一个查询。让我想知道这在 SQL 中是否可行。
虽然第二个很简单,但我想知道将两个查询组合在一起并一次获得四个值是否更有效且更简单。
请问有什么想法可以满足这个要求吗?
谢谢
【问题讨论】:
-
使用日期数据类型存储日期
-
@Strawberry,它确实是“日期”数据类型(2019-11-29 格式)...在上面的问题中,我在 excel 中提取数据并从 excel 中复制粘贴。