BigQuery 的 timestamp 函数会自动识别所在区域的夏令时设置,并根据夏令时的时间调整时间戳的值。因此,无需另外进行操作即可正确处理夏令时。以下为示例代码:
SELECT TIMESTAMP('2021-03-14 01:59:59.000 America/New_York') AS timestamp1,
TIMESTAMP('2021-03-14 03:00:00.000 America/New_York') AS timestamp2,
TIMESTAMP_DIFF(timestamp2, timestamp1, SECOND) AS diff_in_seconds
在上面的代码中,我们指定了美国纽约地区的时区,并使用 TIMESTAMP 函数创建了两个时间戳:timestamp1 和 timestamp2。timestamp1 是在夏令时结束之前的时间点,而 timestamp2 是夏令时开始之后的时间点。然后使用 TIMESTAMP_DIFF 函数计算了两个时间戳之间的时间差,返回的单位是秒。由于夏令时的时间调整,timestamp2 比 timestamp1 晚了 3,600 秒(1 小时),因此 diff_in_seconds 的值应该为 3,600。