这可能是因为使用的时区不正确。在BigQuery中,时间戳默认基于格林威治标准时间(GMT),而不是本地时间。如果要基于本地时间提取小时,可以使用以下代码示例:
SELECT EXTRACT(HOUR FROM DATETIME(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 8 HOUR))) AS HOUR_IN_PST
其中INTERVAL 8 HOUR表示时差,即将当前时区UTC-7转换为PST(Pacific Standard Time)。以此类推,您可以更改INTERVAL的值来转换到您所在的时区。
如果仍然遇到意外结果,请检查时区和代码语法是否正确,并考虑是否需要进行额外的数据格式转换,例如使用FORMAT_DATETIME函数来指定所需的输出格式。