获取表中记录之间的数据

时间:2012-04-17 11:06:23

标签: sql oracle date-range

我有这样的数据:

Data

例如,今天是2012年4月。请参阅上面的数据,我想获得M_PER = 03-2012的数据,因为这个月位于03-2012 TO 06-2012范围内。

- 已编辑
在这种情况下,我想获得使用过的货币代码的汇率。因为今天仍然是四月,我想知道美元(USD)到印度尼西亚卢比(IDR),我必须得到M_PER = 03-2012CRR_CURRENCY_CODE = USD的数据。

问题是查询可以检索这样的数据吗?

2 个答案:

答案 0 :(得分:1)

由于您似乎使用季度值,我将使用TRUNC函数和'Q'格式模型。这会将日期截断为1/1 / YYYY,1/4 / YYYY,1/7 / YYYY和1/10 / YYYY,即该季度的第一天。

为了适应季度末的月份模型,您必须再添加两个月。这假定MONTH_PERIOD列是SQL日期而不是其他一些数据类型。

下面是一个示例,使用SYSDATE作为输入日期。

select *
from your_table
where add_months(trunc(sysdate, 'Q'),2) = month_period;

答案 1 :(得分:-1)

我使用rownum和order by来获取值。
SELECT * FROM tables WHERE m_per > '04-2012' AND ROWNUM = 1 ORDER BY month_period ASC