ksql流返回错误的epoch转换

n9vozmp4  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(274)

关于Kafka,我有点问题 TIMESTAMPTOSTRING 功能。我经历了两个时代,一个是今天的日期,另一个是不同的日期。我使用的是json格式,我的流如下:

CREATE STREAM TestStream
(
    Id BIGINT,
    AnotherDate BIGINT,
    TodaysDate BIGINT
) WITH(KAFKA_TOPIC='_account', VALUE_FORMAT='JSON');

当查询 TestStream ,我得到以下数据:
测试流

我使用了以下站点来检查历元是否有效:https://www.epochconverter.com
但是,当我运行以下查询时:

SELECT 
  TIMESTAMPTOSTRING(TODAYSDATE, 'yyyy-MM-dd HH:mm:ss.SSS') AS TODAY, 
  TIMESTAMPTOSTRING(ANOTHERDATE, 'yyyy-MM-dd HH:mm:ss.SSS') AS ANOTHERDATE
FROM 
  TestStream EMIT CHANGES LIMIT 5;

我看到以下日期,这似乎是不正确的:流查询

任何协助都将不胜感激。

wpx232ag

wpx232ag1#

如果你读了 TIMESTAMPTOSTRING 功能文档:
将bigint毫秒时间戳值转换为给定格式的时间戳的字符串表示形式。
您的历元时间戳处于第二级,而不是毫秒级。所以你才会有这样的结果。
如果你只是做一个简单的算术运算 (epoch_in_secs * 1000) 把你的时代 TODAYSDATE 以及 ANOTHERDATE 到毫秒,它会工作得很好。

SELECT 
  TIMESTAMPTOSTRING(TODAYSDATE*1000, 'yyyy-MM-dd HH:mm:ss.SSS') AS TODAY, 
  TIMESTAMPTOSTRING(ANOTHERDATE*1000, 'yyyy-MM-dd HH:mm:ss.SSS') AS ANOTHERDATE
FROM 
  TestStream EMIT CHANGES LIMIT 5;

我在confluent pageview教程上进行了一个简单的测试,它可以工作:

SELECT 
  VIEWTIME_SEC,
  VIEWTIME,
  TIMESTAMPTOSTRING(VIEWTIME_SEC*1000, 'yyyy-MM-dd HH:mm:ss.SSS') AS TS_FROM_SEC,
  TIMESTAMPTOSTRING(VIEWTIME, 'yyyy-MM-dd HH:mm:ss.SSS') AS TS_FROM_MS
FROM 
  PAGEVIEWS_MARTELADA 
EMIT CHANGES;

结果:

+-------------+--------------+------------------------+------------------------+
|VIEWTIME_SEC |VIEWTIME      |TS_FROM_SEC             |TS_FROM_MS              |
+-------------+--------------+------------------------+------------------------+
|1605889400   |1605889400577 |2020-11-20 16:23:20.000 |2020-11-20 16:23:20.577 |
|1605889400   |1605889400902 |2020-11-20 16:23:20.000 |2020-11-20 16:23:20.902 |
|1605889401   |1605889401619 |2020-11-20 16:23:21.000 |2020-11-20 16:23:21.619 |
|1605889402   |1605889402556 |2020-11-20 16:23:22.000 |2020-11-20 16:23:22.556 |
|1605889403   |1605889403115 |2020-11-20 16:23:23.000 |2020-11-20 16:23:23.115 |
|1605889404   |1605889404080 |2020-11-20 16:23:24.000 |2020-11-20 16:23:24.080 |
|1605889404   |1605889404317 |2020-11-20 16:23:24.000 |2020-11-20 16:23:24.317 |
|1605889404   |1605889404372 |2020-11-20 16:23:24.000 |2020-11-20 16:23:24.372 |

相关问题