Teradata SQL - 如何将小时数加到整数上?

Teradata SQL - How do I add hours to an integer?

我有一个 table,其中有一列名为 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 是 1:15 下午。我想给他们增加三个小时,但不知道该怎么做。

可以加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