BigQuery自动将时间戳时区转换为UTC

2024-10-02 08:22:49 发布

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

我有一张这样的桌子:

enter image description here

以及这样的文件:https://storage.googleapis.com/test_share_file/testTimestamp.csv

看起来像: enter image description here

我使用python将文件加载到big query中:

from google.cloud import bigquery as bq

gs_path = 'gs://test_share_file/testTimestamp.csv'
bq_client = bq.Client.from_service_account_json(gcp_creds_fp)
ds = bq_client.dataset('test1')
tbl = ds.table('testTimestamp')

job_config = bq.LoadJobConfig()
job_config.write_disposition = bq.job.WriteDisposition.WRITE_append
job_config.skip_leading_rows = 1 # skip header
load_job = bq_client.load_table_from_uri(gs_path, tbl, job_config=job_config)
res = load_job.result()

但在表中,两个时间戳都是UTC时间!在

enter image description here

我怎样才能让第二个专栏在东部时间?在


Tags: 文件csvpathfromtestclientgsconfig
1条回答
网友
1楼 · 发布于 2024-10-02 08:22:49

您可以动态地将第一列“转换”为东部时间—类似于下面的示例

#standardSQL
WITH t AS (
  SELECT TIMESTAMP '2018-05-07 22:40:00+00:00' AS ts
)
SELECT ts, STRING(ts, '-04:00') timestamp_eastern
FROM t

I am dealing with ... stubbornness ...

您可以创建视图,该视图将包含您需要的所有逻辑,这样客户机将查询该视图而不是原始表

^{pr2}$

I do think it odd that big query can't display a time in a timezone

时间戳代表绝对时间点,独立于任何时区或惯例,如夏令时。
时区用于解析时间戳或格式化时间戳以进行显示。时间戳值本身不存储特定时区。字符串格式的时间戳可以包括时区。如果未显式指定时区,则使用默认时区UTC。

查看有关^{}的更多信息

相关问题 更多 >

    热门问题