如何运行此查询?
错误消息:参数类型的函数提取没有匹配的签名:date\u time\u part from int64。支持的签名:extract(date\u time\u part from date);从时间戳[时区字符串]中提取(日期时间部分);提取(date\u time\u part from datetime);在[12:12]提取(日期时间部分)
它们都给出相同的错误信息
WHERE EXTRACT( SECOND FROM event_timestamp )
- EXTRACT( SECOND FROM last_event) >= (60 * 10)
OR last_event IS NULL
WHERE EXTRACT( SECOND FROM event_timestamp AT TIME ZONE "UTC")
- EXTRACT( SECOND FROM last_event AT TIME ZONE "UTC") >= (60 * 10)
OR last_event IS NULL
2条答案
按热度按时间v1uwarro1#
使用
TIMESTAMP_MICROS()
```WHERE EXTRACT( SECOND FROM TIMESTAMP_MICROS(event_timestamp))
- EXTRACT( SECOND FROM last_event) >= (60 * 10)
OR last_event IS NULL
h7wcgrx32#
如果您希望事件距离上一个时间戳超过10分钟,只需使用一些算术和比较:
您将时间戳存储为微秒值。您不需要转换为其他类型。
如果你真的想把它变成
timestamp
值,您可以使用:尤其是,您不希望提取秒数。这个值总是在0到59之间。