gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:23:02 28 4
gpt4 key购买 nike

我有一个这样的表:

enter image description here

和一个这样的文件:https://storage.googleapis.com/test_share_file/testTimestamp.csv

看起来像: enter image description here

我使用 python 将文件加载到大查询中,如下所示:

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

如何使第二列处于东部时间?

最佳答案

您可以将第一列即时“转换”为东部时间 - 如下例所示

#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 ...

您可以创建 View ,其中包含您需要的所有逻辑,以便客户端将查询该 View 而不是原始表

#standardSQL
CREATE VIEW `project.dataset.your_view` AS
SELECT ts, STRING(ts, '-04:00') timestamp_eastern
FROM `project.dataset.your_table`

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

时间戳代表绝对时间点,与任何时区或约定(例如夏令时)无关。
解析时间戳或格式化时间戳以供显示时使用时区。时间戳值本身不存储特定时区。字符串格式的时间戳可以包括时区。当未明确指定时区时,将使用默认时区 UTC。

查看更多有关Timestamp type的信息

关于python - BigQuery 自动将时间戳时区转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50658061/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com