根据其他列将小时数添加到 Netezza 中的时间戳

Add hours to timestamp in Netezza based on other column

我在 Netezza SQL 数据库中工作。我有 2 列:

我想做的是将 TIME_OFFSET 列作为一个小时添加到 DATETIME1 列。

我创建了以下可重现的示例:

SELECT *
FROM ADMIN.INTEGRAL_ADSCIENCE_1845

WITH my_table AS (
SELECT TIMESTAMP('2017-06-01 08:01:45') AS datetime1,
    1 AS time_offset
UNION 
SELECT TIMESTAMP('2017-06-01 08:03:45') AS datetime1,
    2 AS time_offset
)
SELECT
    DATETIME1,
    TIME_OFFSET,
    DATETIME1 + TIME_OFFSET AS simple_add,
    DATETIME1 + INTERVAL '1 hour' AS add_one_hour
FROM my_table;

这将创建以下输出:

+---------------------+-------------+------------+---------------------+
|      DATETIME1      | TIME_OFFSET | SIMPLE_ADD |    ADD_ONE_HOUR     |
+---------------------+-------------+------------+---------------------+
| 2017-06-01 08:01:45 |           1 | 2017-06-02 | 2017-06-01 09:01:45 |
| 2017-06-01 08:03:45 |           2 | 2017-06-03 | 2017-06-01 09:03:45 |
+---------------------+-------------+------------+---------------------+

但我想要的是第一行增加 1 小时,第二行增加 2 小时。

我知道 mysql date_add() 功能,但不幸的是我仅限于 Netezza。

这应该适合你。

  WITH  my_table AS (SELECT    TIMESTAMP('2017-06-01 08:01:45') AS dttm
                             , 1 AS tm_offset
                      UNION
                     SELECT    TIMESTAMP('2017-06-01 08:03:45') AS dttm
                             , 2 AS tm_offset)
SELECT    dttm
        , tm_offset
        , dttm + tm_offset AS simple_add
        , dttm + CAST(tm_offset || ' hour' AS INTERVAL)
  FROM  my_table;