BigQuery 时区转换

Posted

技术标签:

【中文标题】BigQuery 时区转换【英文标题】:BigQuery time zone conversion 【发布时间】:2020-03-20 22:31:30 【问题描述】:

我正在尝试将时区转换查询从 bigquery 转换为 presto,现有的 bigquery 语法如下:

timestamp(datetime('2019-07-01'), 'US/Pacific')

但是这个 bigquery 的语法一开始是不正确的吗?谢谢!

【问题讨论】:

【参考方案1】:

没错。

另外,请考虑以下 - 取决于您期望的确切输出

TIMESTAMP('2019-07-01', 'US/Pacific')

DATETIME('2019-07-01', '美国/太平洋')

语法是

TIMESTAMP(
  string_expression[, timezone] |
  date_expression[, timezone] |
  datetime_expression[, timezone]
)   

DATETIME(timestamp_expression [, timezone])

【讨论】:

感谢您的建议,因此我以以下变体形式运行了查询并得到了结果:TIMESTAMP(DATETIME('2019-07-01'), 'US/Pacific') --> 2019-07 -01 07:00:00 TIMESTAMP('2019-07-01', 'US/Pacific') --> 2019-07-01 07:00:00 DATETIME('2019-07-01', 'US/Pacific ') --> 2019-06-30 17:00:00 似乎 TIMESTAMP 只是将时区差异的绝对小时添加到日期,而 DATETIME 减去时区差异。 正如我在回答中提到的那样-“取决于您期望的确切输出”以及您的用例。与此同时,问题是关于 bigquery 语法的,它恰好是正确的:o)

以上是关于BigQuery 时区转换的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 中的优雅时区转换

bigquery 使用时区转换字符串日期时间

如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?

将时间戳转换为特定时区然后在 bigquery 中将其转换为日期时出现问题

BigQuery 自动将时间戳时区转换为 UTC

列类型 TIMESTAMP 的 BigQuery 导入转换日期时间偏移量/时区,但列类型 DATETIME 失败并显示“无效的日期时间字符串”