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 中的时区列将 UTC 时间转换为本地时区?
将时间戳转换为特定时区然后在 bigquery 中将其转换为日期时出现问题
列类型 TIMESTAMP 的 BigQuery 导入转换日期时间偏移量/时区,但列类型 DATETIME 失败并显示“无效的日期时间字符串”