规则里面,如何做到指定时间段的消息才发出去呢?

比如当时间是早上8点到晚上10点,数据才转发,其他时候的数据不转发丢掉

是说 payload 中携带的时间戳?
还是说规则执行时,判断当前时间是否为 08:00-20:00 (或者其他某个指定的时间段),如果是这个时间段才转发。

第二种,判断当前时间是否为 08:00-20:00 (或者其他某个指定的时间段),如果是这个时间段才转发。

通过规则的日期函数和字符串函数进行正则匹配,以下是一个规则示例,匹配了时间段 08:00-20:00 (不包括 20:00 整),具体的正则表达式可以根据需求进行调整。

在运行规则测试后可以看到 as_time = true, not_time = true
(当前时间为 09:50, now_rfc3339() 函数结果符合正则匹配)

SELECT
  *,
  now_rfc3339() as rfc_3339,
  regex_match(now_rfc3339(), '^(\d{4}-\d{2}-\d{2})T((0[8-9]|1[0-9]):[0-5]\d:[0-5]\d)\+.*$') as as_time,
  regex_match('2023-12-20T07:46:06+08:00', '^(\d{4}-\d{2}-\d{2})T((0[8-9]|1[0-9]):[0-5]\d:[0-5]\d)\+.*$') as not_time
FROM
  "t/#"
WHERE
  as_time = true