BigQuery - 将日期时间转换为本地时区?

问题描述 投票:0回答:3

我有一个日期时间列,其中包含 UTC 格式的“2020-08-05T10:19:30”等数据。

我需要使用 BigQuery SQL 调用将其转换为“美国/洛杉矶”或“美国/芝加哥”时区。

我已经尝试过:

SELECT A, B, C, DATETIME(date_field,"America/Los Angeles") as new_date_field FROM table;

我明白了:

“参数类型的函数 DATETIME 没有匹配的签名: 日期时间,字符串。支持的签名:DATETIME(INT64, INT64, INT64, INT64、INT64、INT64);日期时间(日期,时间);日期时间(时间戳, [细绳]);日期时间(日期);日期时间(日期时间);日期时间(字符串)”

sql datetime google-bigquery timezone-offset
3个回答
1
投票

尝试以下

SELECT A, B, C, 
  DATETIME(timestamp(date_field),"America/Chicago") as new_date_field 
FROM table;

1
投票

您看到该错误是因为您的数据已经采用日期时间数据类型,并且这不是日期时间函数的有效数据类型。请尝试以下操作:

with sample_data as (
select  DATETIME("2020-08-05T10:19:30") as date_field
)
select  datetime(timestamp(date_field), "America/Los_Angeles") from sample_data 

1
投票

只需更改日期时间格式 '%d/%m/%Y %H:%M:%S' 和区域 下面的“亚洲/加尔各答”并运行它。查找以下印度标准时间 (IST) 的示例。

BigQuery 命令

select format_timestamp('%d/%m/%Y %H:%M:%S IST', datetime(timestamp_micros(event_timestamp), "Asia/Kolkata")) as time from table
© www.soinside.com 2019 - 2024. All rights reserved.