如何在使用相对时间的bigint列上编写ksql查询?
i、 我怎样才能取得这样的成就。。。。
SELECT timestamp,value FROM XYZ where timestamp > now() - INTERVAL 5 MINUTES
其中timestamp是bigint字段;从epoch开始的毫秒数。
编辑:上下文。我需要通过网络/数据库savable传递这些查询,我们有许多查询从bigint字段的流中获取最后20分钟的数据。
即 SELECT timestamp from STREAMNAME where timestamp > 1592882020842
保存/发送此查询的问题是,自保存此查询的时间点以来,经过的时间越来越多,因此离“20分钟前”越来越远。
我真正想要的是这样一个问题。
SELECT timestamp from STREAMNAME where timestmap > now() - 20mins
无论此查询在将来通过网络保存/加载/发送/运行多少次。将始终返回20分钟前->现在的时间戳
从那以后,我在文件里找到了我想要的东西 UNIX_TIMESTAMP()
以毫秒为单位返回bigint格式的时间。
1条答案
按热度按时间m528fe3b1#
UNIX_TIMESTAMP
返回处理行时的当前挂钟时间(毫秒),即返回处理时间。函数返回的时间戳将随着每一行的处理而前进。这与传统数据库的处理方式不同
now
,它将被求值一次,并且这个不可变的时间戳将用于查询的持续时间,而不管查询运行了多长时间。理解其中的区别很重要。如果
UNIX_TIMESTAMP
你想要什么。。。那太好了!