【问题标题】:Is there a way to UPSERT a TIMESTAMP with TIME ZONE information in Apache Phoenix?有没有办法在 Apache Phoenix 中使用 TIME ZONE 信息 UPSERT 时间戳?
【发布时间】:2021-10-03 02:19:33
【问题描述】:

我正在尝试使用 PutSQL 处理器从 Nifi UPSERT 进入 Phoenix 表。

假设我的表名为 X,其架构如下所示: 编号 [INT], ts [时间戳]

语句如下:

UPSERT INTO X (id, ts) VALUES (1 , '2021-07-01 10:00:00.000')

问题: 当我看凤凰桌时,我看到:

id ts
1 2021-07-01 08:00:00.000

显然,因为我的 Apache Nifi 或 Phoenix 服务器时间设置为 GMT+02:00,TIMESTAMP 在 UPSERT 期间会发生偏移,因为 Phoenix 认为它必须更正此偏移才能到达 GMT。但是我的时间戳已经是 GMT 时间戳,所以我不想要这个更正。

有没有办法将时区信息附加到 TIMESTAMP 字符串以便 Phoenix 理解它?我在文档中找不到任何内容。

我已经尝试过插入但没有成功:

'2021-07-01 10:00:00.000Z'
'2021-07-01 10:00:00.000+0000'

约束:我不能将我的服务器时区更改为 GMT/UTC(这可能是一个简单的解决方案),因为我不是管理员。

有人可以建议吗?

【问题讨论】:

    标签: timestamp timezone upsert phoenix


    【解决方案1】:

    我找到了解决方案: 如果我 UPSERT 纪元毫秒而不是时间戳字符串,它可以工作。

    所以现在的解决方案是:

    UPSERT INTO X (id, ts) VALUES (1, 1625133600000)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2020-08-20
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      相关资源
      最近更新 更多