是否有一个ESQL函数将TIMESTAMP转换为UTC毫秒?
这就是我所做的:
DECLARE eventTimeInteger INTEGER CAST ((eventTimeStamp - epochTimeStamp) SECOND as INTEGER);
但我一直收到此错误。因此,我怀疑“-”是一个问题,但是我不确定该如何解决。
BIP2420E:(.Event_SeparateMessages.Main,142.60):“-”运算符的数据类型无效或不兼容。
或者该运算符的操作数的数据类型对该运算符无效,或者该数据类型不兼容。
在行和列“ 142.60”周围的节点“ .Event_SeparateMessages.Main”中更正您的ESQL表达式的语法,然后重新部署消息流:确保操作数的数据类型有效并且彼此兼容。 / p>
以下是我尝试过的方法,但什至不会部署。
--Converting time in string to timestamp
DECLARE source CHARACTER eventTime ;
DECLARE eventTimeStamp CHARACTER;
DECLARE pattern CHARACTER 'yyyy-MM-dd''T''HH:mm:ss.SSS''Z';
SET eventTimeStamp = CAST(source AS TIMESTAMP FORMAT pattern);
DECLARE epochTimeStamp TIMESTAMP '1970-01-01 00:00:00';
--Casting time from timestamp to Integer
DECLARE eventTimeInteger INTEGER CAST ((eventTimeStamp - epochTimeStamp) SECOND as INTEGER);
我需要“ eventTimeInteger”以秒为单位提供时间戳。
答案 0 :(得分:1)
如果我正确地阅读了您的代码,则问题是您试图从TIMESTAMP
集中减去CHARACTER
。
edit:注意到eventTimeStamp的SET更改,但是日期数学仍将给出 INTERVAL
输出,而不是 INTEGER
DECLARE EpocTimeStamp TIMESTAMP;
DECLARE eventTimeStamp INTERVAL;
SET EpocTimeStamp = TIMESTAMP '1970-01-01 00:00:00';
SET eventTimeStamp = (CURRENT_TIMESTAMP - EpocTimeStamp) SECOND * 1000;
CAST(eventTimeStamp AS INTEGER);