将时间戳存储到具有特定时区的BigQuery

2024-10-03 23:23:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个时间戳为UTC8的csv

whatever.csv

timestamp
2020-09-09 11:42:33
2020-09-09 11:42:51
2020-09-09 11:49:29

我想把它们存储在BQ中。存储到BQ后,我得到的结果是:

enter image description here

它表示UTC,而不是UTC+8

但是,时间戳是正确的,但是有没有办法像这样存储它2020-09-11 19:58:51 UTC+8?或者相关的东西,只要它反映时间戳的实际时区

其次,我是否可以在字段模式中指定需求,因为我正在使用python脚本存储它,并通过YAML文件的模式映射它,例如:

somefile.yaml:

  schema:
    - name: "timestamp"
      type: "TIMESTAMP"
      mode: "NULLABLE"

Tags: 文件csv脚本yamlschema时间模式timestamp
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:58

你可能需要更多地说明你想获得什么样的帮助

首先,BigQuery总是以UTC格式存储时间戳。我不得不猜测,您并不需要在特定的时区存储时间戳(因为我无法想象为什么ts的存储方式对您很重要),您更关心如何在UTC+8中显示时间戳。如果我的猜测是正确的,有两种方法:

SELECT STRING(TIMESTAMP "2008-12-25 15:30:00+00", "UTC+8")

这种方法需要你装饰你的每一个TS栏目,一个一劳永逸的方法可能是

SET @@time_zone = "Asia/Shanghai";
  All subsequent query will use time zone "Asia/Shanghai"
SELECT STRING(TIMESTAMP "2008-12-25 15:30:00+00");

两个输出:

+            +
|          f0_           |
+            +
| 2008-12-25 23:30:00+08 |
+            +

相关问题 更多 >