1
我正在Netezza SQL数据库中工作。我有2列:在Netezza基于其他列添加小时到Netezza的时间戳
- DATETIME1:具有交易的UTC时间的时间戳
- TIME_OFFSET:是一个整数,表示从UTC用户的时区的偏移量。例如,在UTC + 1的用户才有价值1
我想这样做是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不幸的。
谢谢。我没有想到投中间隔。我试过'+ INTERVAL tm_offset || '小时',但没有工作。 – niczky12
是的,如果我猜测它与Netezza评估查询的顺序有关。 – joeb