BigQuery Google时区转换

时间:2018-11-02 03:48:31

标签: google-bigquery timestamp-with-timezone

当我尝试在查询下面运行时,我会获得UTC时区的时间戳。

select current_timestamp from table;

能帮我将时间戳转换为EST时区吗?

谢谢

3 个答案:

答案 0 :(得分:1)

尝试以下方法:

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

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

答案 1 :(得分:1)

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

这里的窍门是将TIMESTAMP转换为DATETIME,该时间戳会时区少,将时间戳表示为一个正确的日期/时间,然后再转换回TIMESTAMP,但现在指定所需的时区。
请注意,BigQuery仍会将其显示为UTC,但时间戳记值本身将代表相应时区中的值

答案 2 :(得分:0)

要获得更多控制权,您可以使用FORMAT_TIMESTAMPhttps://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 |
|-------------------------|