BigQuery Google 时区转换

BigQuery Google timezone conversion

当我尝试 运行 下面的查询时,我得到了 UTC 时区的时间戳。

select current_timestamp from table;

你能帮我转换时间戳以进入 EST 时区吗?

谢谢

试试这个:

SELECT STRING(CURRENT_TIMESTAMP, 'America/New_York') AS current_timestamp
FROM dataset.table

这会将时间戳转换为使用纽约时区的字符串。

SELECT TIMESTAMP(DATETIME(CURRENT_TIMESTAMP), 'America/New_York')  

这里的技巧是将 TIMESTAMP 转换为无时区的 DATETIME,以将时间戳表示为 date/time,然后转换回 TIMESTAMP,但现在指定所需的时区。
请注意,BigQuery 仍会将其显示为 UTC,但时间戳值本身将代表各自时区的值

要获得更多控制,您可以使用 FORMAT_TIMESTAMP (https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions#format_timestamp)

示例:

SELECT FORMAT_TIMESTAMP("%F %T EST", current_timestamp, "America/New_York") AS current_timestamp_EST FROM `dataset.table` LIMIT 1;

结果:

|-------------------------|
|  current_timestamp_EST  |
|-------------------------|
| 2020-10-23 18:25:17 EST |
|-------------------------|