bigquery converting the string datetime with timezone
bigquery中具有TB级数据的表将多个列设置为字符串格式,但实际上它们包含日期时间字符串,例如
2016-10-24 15:00:00
我尝试通过此链接回答将字段转换(CAST)为时间戳格式,如下所示
1 2 3 | SELECT CAST( MURDER_DATE AS TIMESTAMP) AS CONVERTED_MURDER_DATE, * FROM `death_list`; |
可以,但是它将所有字符串转换为带有UTC时区的时间戳,如下所示
1 | 2007-03-23 15:00:00.000 UTC |
我需要其他时区的数据。 有什么线索吗?
尝试使用
1 | DATETIME(CAST( MURDER_DATE AS TIMESTAMP),"Australia/Sydney")) |
在我看来,这似乎是BigQuery的当前限制:
- 时间戳记类型始终以UTC格式存储。 而且您无法向其中添加任何"时区"信息。
- 日期时间类型也不存储有关时区的任何信息。 您的团队/公司中仍然可能有一个内部约定,其中规定所有Datetime列都存储在您的本地时区中,但是我个人觉得很尴尬。
到目前为止,我们在公司中已决定将所有内容存储在Timestamp(因此为UTC格式)中,并且由于时区缺乏精确性,因此我们从不使用Datetime。 然后,如果客户想要在另一个时区中获取信息,则它在读取数据时必须自己进行转换。