首页 文章

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

提问于
浏览
1

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

    尝试使用

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

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

    • 时间戳类型始终以UTC格式存储 . 并且您无法向其添加任何"timezone"信息 .

    • 日期时间类型也不存储有关时区的任何信息 . 你的团队/公司仍然可以有一个内部约定,说明所有的Datetime列都存储在你当地的时区,但我个人觉得它非常尴尬 .

    到目前为止我们在公司中已经决定将所有内容存储在Timestamp中(因此是UTC格式),由于时区精度不高,我们从不使用Datetime . 然后,如果客户想要在另一个时区获取信息,则在读取数据时必须自己进行转换 .

相关问题