【发布时间】:2014-03-31 21:12:59
【问题描述】:
我搜索了论坛,但找不到对我有帮助的答案。 因此,此线程的原因。
我有一个包含每小时价格观察的数据库。 我也有这个 SQL 查询语句,它进入并选择/返回特定日期范围内的每小时价格观察。
但是,我需要查询以半小时而不是每小时返回价格观察结果 --> 我想这意味着,每个观察基本上都需要重复两次,因此将其从每小时转换为每半小时。
我的代码是这样的:
SELECT A.DELIVERY_START,
A.PRICE
FROM DMA_PREP.DMA_PRICE_V a
WHERE 1 =1
AND A.PRODUCT_BID ='1000286'
AND a.DELIVERY_START >= TRUNC(TRUNC(TRUNC(sysdate,'YYYY'),'YY'),'YY')
AND a.DELIVERY_PERIOD_TYPE_NAME = 'Hour'
ORDER BY A.delivery_start
我尝试将“小时”更改为“半小时”,但没有运气,因为它开始从数据库中返回一些完全其他的值,该数据库具有半小时标签。
所以基本上,我需要查询来提取数据,但在打印之前将其转换为半小时观察一次。
现在的输出如下所示:
01-JAN-14 35
14 年 1 月 1 日 34.97
14 年 1 月 1 日 34.03
01-JAN-14 30
01-JAN-14 28.04
14 年 1 月 1 日 29.79
14 年 1 月 1 日 29.79
14 年 1 月 1 日 29.79
01-JAN-14 29.9
01-JAN-14 30.63
14 年 1 月 1 日 33.58
14 年 1 月 1 日 34.97
14 年 1 月 1 日 44.92
14 年 1 月 1 日 35.99
14 年 1 月 1 日 35.46
14 年 1 月 1 日 37.94
14 年 1 月 1 日 59.94
14 年 1 月 1 日 71.99
01-JAN-14 57.91
14 年 1 月 1 日 47.95
14 年 1 月 1 日 44.95
01-JAN-14 40.04
14 年 1 月 1 日 34.56
01-JAN-14 34.01
14 年 1 月 2 日 36.71
有什么建议吗?
【问题讨论】:
-
请从您的数据库中添加一个示例行
-
是否有交易完成的日期?另外,请提供一些示例数据,以及您希望从这些数据中获得什么的示例?
-
您使用哪种 DBMS?
-
sysdate和trunc与日期参数的使用让我相信这是一个 Oracle 问题,所以我适当地标记了它。 -
有人已经将它设置为每小时间隔。如果幸运的话,它只是一个视图(假设 _V 表示),因此可以对其进行修改。但是,您不能自己做。您需要修改该视图后面的查询。