Sql BigQuery:从时间戳中提取秒

Sql BigQuery:从时间戳中提取秒,sql,google-bigquery,Sql,Google Bigquery,如何运行此查询 错误消息:参数类型:DATE\U TIME\U PART FROM INT64的函数提取没有匹配的签名。支持的签名:EXTRACTDATE\u TIME\u PART FROM DATE;从时间戳[时区字符串]中提取日期\时间\部分;从日期时间中提取日期时间部分;从[12:12]的时间提取日期时间部分 它们都给出相同的错误消息 WHERE EXTRACT( SECOND FROM event_timestamp ) - EXTRACT( SECOND

如何运行此查询

错误消息:参数类型:DATE\U TIME\U PART FROM INT64的函数提取没有匹配的签名。支持的签名:EXTRACTDATE\u TIME\u PART FROM DATE;从时间戳[时区字符串]中提取日期\时间\部分;从日期时间中提取日期时间部分;从[12:12]的时间提取日期时间部分

它们都给出相同的错误消息

 WHERE EXTRACT( SECOND FROM event_timestamp )
             - EXTRACT( SECOND FROM last_event) >= (60 * 10)
        OR last_event IS NULL
使用时间戳

使用时间戳


如果您想要的事件距离上一个时间戳超过10分钟,只需使用一些算术和比较:

where event_timestamp > last_event + (60 * 10 * 1000000) or
      last_event is null
您正在将时间戳存储为微秒值。您不需要转换为其他类型

如果确实希望将其转换为时间戳值,可以使用:

where timestamp_micros(event_timestamp) > timestamp_add(timestamp_micros(last_event), interval 10 minute) or
      last_event is null

特别是,您不想提取秒数。该值始终介于0和59之间。

如果希望事件距离上一个时间戳超过10分钟,只需使用一些算术和比较:

where event_timestamp > last_event + (60 * 10 * 1000000) or
      last_event is null
您正在将时间戳存储为微秒值。您不需要转换为其他类型

如果确实希望将其转换为时间戳值,可以使用:

where timestamp_micros(event_timestamp) > timestamp_add(timestamp_micros(last_event), interval 10 minute) or
      last_event is null

特别是,您不想提取秒数。该值始终在0和59之间。

事件时间戳是否以微秒为单位存储?请解释要实现的逻辑。事件时间戳是否以微秒为单位存储?请解释要实现的逻辑。