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

时间:2018-03-20 05:54:06

标签: sql google-cloud-platform google-bigquery

bigquery中包含TB级数据的表将多列设置为字符串格式,但实际上它们包含日期时间字符串,如

2016-10-24 15:00:00

我尝试从this link回答以将字段转换(CAST)为时间戳格式,如下所示

SELECT
   CAST( MURDER_DATE AS TIMESTAMP) AS CONVERTED_MURDER_DATE, *
FROM `death_list`;

可行,但它将所有字符串转换为UTC时区的时间戳,如下所示

2007-03-23 15:00:00.000 UTC

我需要不同时区的数据。任何线索?

2 个答案:

答案 0 :(得分:3)

尝试使用

DATETIME(CAST( MURDER_DATE AS TIMESTAMP), "Australia/Sydney"))

答案 1 :(得分:0)

在我看来,它似乎是BigQuery的当前限制:

  • 时间戳类型始终以UTC格式存储。你无法添加任何"时区"给它的信息。
  • 日期时间类型也不存储有关时区的任何信息。你的团队/公司仍然可能有一个内部约定,即所有Datetime列都存储在你当地的时区,但我个人认为它很尴尬。

我们公司迄今为止所决定的是将所有内容存储在Timestamp中(因此为UTC格式),并且由于时区精度不高,我们从不使用Datetime。然后,如果客户想要在另一个时区获取信息,它必须在读取数据时进行转换。

相关问题