Разбивка временной отметки на часовые интервалы для каждого дня - PullRequest
0 голосов
/ 18 октября 2018

У меня есть таблица с данными следующим образом.CASE_ID - это NUMBER тип, а TIMESTAMP - TIMESTAMP тип.


CASE_ID        TIMESTAMP
1              09-OCT-18 12.28.48.655904000
2              10-OCT-18 08.14.38.909903000
3              11-OCT-18 02.46.55.755881000
4              12-OCT-18 14.17.44.103901150

Я хотел бы иметь оператор выбора, к которому я добавляю третий столбец TIME_INTERVAL к возвращаемым результатами из приведенных выше данных, поэтому он представляется следующим образом:


CASE_ID        TIMESTAMP                         TIME_INTERVAL
1              09-OCT-18 12.28.48.655904000      09-OCT-18 12:00-13:00
2              10-OCT-18 08.14.38.909903000      10-OCT-18 08:00-09:00
3              11-OCT-18 02.46.55.755881000      11-OCT-18 02:00-03:00
4              12-OCT-18 14.17.44.103901150      12-OCT-18 14:00-15:00

В основном в TIME_INTERVAL Я проверяю из TIMESTAMP, чтобы увидеть, на какой временной интервал попадает метка времени, и вернуть его, поэтому, если транзакция былав Oct 18 2018 в 20.20.15.216901550 столбец TIME_INTERVAL будет отображаться как 18-OCT-18 20:00-21:00, так как время находится между 20:00 (8 o’clock) и 21:00 (9 o’clock).Любая помощь?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Вы можете использовать:

select t.*, 
       to_char(trunc(cast ( timestamp  as date )     , 'hh24'), 
                    'dd-MON-rr hh24:mi','nls_date_language=english')
       ||' - '||
       to_char(trunc(cast ( timestamp  as date )+1/24, 'hh24'),
                              'hh24:mi')
       as TIME_INTERVAL           
  from tab t;
0 голосов
/ 18 октября 2018

Вы не даете нам простой способ попробовать это, но следующее должно сработать:

select
       case_id
     , TIMESTAMP
     , extract(hour from TIMESTAMP) as started_at
     , extract(hour from TIMESTAMP)+1

Создание хорошей строки диапазона из двух вышеупомянутых значений оставлено в качестве упражнения для читателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...