Flink的CURRENT_TIMESTAMP, 如何转成长整形的数据怕?[阿里云实时计算 Flink版]

Flink的CURRENT_TIMESTAMP, 如何转成长整形的数据, 用UNIX_TIMESTAMP 好像是转到秒, 我需要保存到毫秒

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 您好!您可以使用 Flink 的 CURRENT_TIMESTAMP() 函数将当前时间转换为毫秒级别的 UNIX 时间戳,然后再进行转换。示例代码如下:

    SELECT FLOOR(CURRENT_TIMESTAMP() / (1000L * 1000L)) AS myTimestamp;

    注意,在 Flink 中,每个时间节点会被转换为 UNIX 时间戳,单位是毫秒,因此您不必再对其进行额外转换。

  2. 在Flink中,如果你想将CURRENT_TIMESTAMP转换为长整型的数据(即毫秒数),你可以使用以下的方法:

    long milliseconds = System.currentTimeMillis();

    System.currentTimeMillis()方法返回的是当前的毫秒数,也就是从1970年1月1日00:00:00 UTC开始的毫秒数。这是Java的标准库提供的函数,不需要使用任何额外的包或库。

    注意,这个方法返回的是当前时间的毫秒数,而不是CURRENT_TIMESTAMP的毫秒数。如果你需要将CURRENT_TIMESTAMP转换为毫秒数,你需要先将其转换为java.sql.Timestamp对象,然后使用getTime()方法获取其毫秒数。以下是一个示例:

    Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());long milliseconds = currentTimestamp.getTime();

    在这个示例中,我们首先使用System.currentTimeMillis()获取当前的毫秒数,然后将其转换为Timestamp对象。接着,我们使用getTime()方法获取Timestamp对象的毫秒数。

  3. cast (substring (cast (CURRENT_TIMESTAMP as varchar), – 3, 3) as bigint) + unix_timestamp (CURRENT_TIMESTAMP) * 1000 此回答整理自钉群“实时计算Flink产品交流群”