为解决此问题,需要将Timestamp和Datetime转换为UNIX时间戳,然后进行计算。以下是一个示例代码:
SELECT TIMESTAMP_DIFF(CAST(DATETIME_ADD('2022-01-01 01:00:00', INTERVAL 1 HOUR) AS TIMESTAMP), CAST('2022-01-01 01:00:00' AS TIMESTAMP), SECOND) AS timestamp_diff, (UNIX_MILLISECOND(CAST(DATETIME_ADD('2022-01-01 01:00:00', INTERVAL 1 HOUR) AS TIMESTAMP)) - UNIX_MILLISECOND(CAST('2022-01-01 01:00:00' AS TIMESTAMP))) / 1000 AS unix_timestamp_diff
输出为:
3600 | 3600.0
可以看出,Timestamp的差异处理与Unix时间戳处理的结果相同。可以使用此方法来解决BigQuery中Timestamp和Datetime差异处理错误的问题。