如果你阅读了TIMESTAMPTOSTRING函数documentation:
将 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 |