如何使SELECT返回当前季度的TIMESTAMP和每分钟的值?

时间:2019-11-12 01:35:37

标签: oracle select

我有一个下表,我需要选择返回当前季度内每分钟的值。例如,如果现在是15:19,我需要选择返回TIMESTAMP以及该季度中15:15到15:30之间的值。 也就是说,我需要选择返回当前一刻钟的最后一分钟。 DB是ORACLE。

    TIMESTAMP    |    VALUE

11/11/2019 15:09  |     45

11/11/2019 15:10  |     10

11/11/2019 15:11  |     15

11/11/2019 15:12  |     35

11/11/2019 15:13  |     55

11/11/2019 15:14  |     25

11/11/2019 15:15  |     20

11/11/2019 15:16  |     22

11/11/2019 15:17  |     12

11/11/2019 15:18  |     10

11/11/2019 15:19  |     21

我尝试过TRUNC,但没有成功。

1 个答案:

答案 0 :(得分:0)

您需要trunc花费15分钟。

您可以使用以下逻辑来做到这一点:

Select * from your_table
Where your_timestamp_col 
      between trunc(systimestamp,'dd') + floor(to_char(systimestamp,'sssss.ff') / 900) / 96
      And trunc(systimestamp,'dd') + ceil(to_char(systimestamp,'sssss.ff') / 900) / 96

在这里,900代表15分钟内的秒数,而96代表一天中这样的总数(24小时* 4个季度= 96)

干杯!