这个问题可以通过使用 DATETIME
数据类型以及 EXTRACT
函数来解决。具体的方法是,在数据加载到 BigQuery 之前,将时间戳转换为带时区的 DATETIME
类型。例如:
SELECT
EXTRACT(DATE FROM DATETIME(timestamp_string, 'America/Los_Angeles')) AS date
FROM
mytable
在上面的代码中,timestamp_string
是带时区的时间戳字符串,'America/Los_Angeles'
是时区信息,可以根据具体情况进行修改。
同样的,使用 EXTRACT
函数也可以实现 timestamp_trunc 的功能,例如:
SELECT
DATETIME_TRUNC(DATETIME(timestamp_string, 'America/Los_Angeles'), MONTH) AS truncated_month
FROM
mytable
上面的代码中,truncated_month
是将时间戳按照月份截取之后得到的结果。