Teradata SQL - Как добавить часы к целому числу? - PullRequest
0 голосов
/ 28 октября 2019

У меня есть таблица со столбцом с именем ID_PRT_TM. Например,

 SELECT TOP 10 ID
        , ID_PRT_TM 
 FROM STG_OUT.example_table;

|  ID   |  ID_PRT_TM  |
+-------+-------------+
| 21018 |     641     |
| 20852 |    1056     |
| 24815 |    1442     |
| 20711 |     620     |
| 21554 |    1315     |
| 23341 |     936     |
| 21029 |    1056     |
| 20711 |     610     |
| 21555 |     918     |
| 20853 |     745     |

ID_PRT_TM - это целое число, которое представляет часы и минуты. Например, 641 - это 6:41, а 13:15 - 13:15. Я хочу добавить к ним три часа, но не могу понять, как это сделать.

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете добавить 300:

select id_prt_tm + 300

Если ваши часы ограничены 2400, то используйте более изумительную логику:

select (case when id_prt_tm < 2100 then id_prt_tm + 300
             else id_prt_tm - 2100
        end)

Или для большей непостижимости:

select (id_prt_tm + 300) mod 2400
...