Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python BigQuery自动将时间戳时区转换为UTC_Python_Timezone_Google Cloud Platform_Google Bigquery - Fatal编程技术网

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

Python BigQuery自动将时间戳时区转换为UTC,python,timezone,google-cloud-platform,google-bigquery,Python,Timezone,Google Cloud Platform,Google Bigquery,我有一张这样的桌子: 以及一份文件,其内容如下: 这看起来像: 我使用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

我有一张这样的桌子:

以及一份文件,其内容如下:

这看起来像:

我使用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时间

如何将第二列转换为东部时间?

您可以动态地将第一列“转换”为东部时间,如下例所示

#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
我正在处理。。。固执

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

#standardSQL
CREATE VIEW `project.dataset.your_view` AS 
SELECT ts, STRING(ts, '-04:00') timestamp_eastern 
FROM `project.dataset.your_table`
我确实觉得奇怪,大查询不能显示时区中的时间

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

查看更多关于的信息,您可以动态地将第一列“转换”为东部时间,如下面的示例所示

#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
我正在处理。。。固执

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

#standardSQL
CREATE VIEW `project.dataset.your_view` AS 
SELECT ts, STRING(ts, '-04:00') timestamp_eastern 
FROM `project.dataset.your_table`
我确实觉得奇怪,大查询不能显示时区中的时间

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


请参阅更多关于

大查询是否不能包含非utc时区的列?@RSHAP-I second Elliott,这就是为什么我认为我的答案仍然适合您。从
客户端开始。。。不懂sql
-您应该付出额外的努力,教授/教育客户至少一些基础知识,否则您以后无论如何都会遇到问题。现在不懂Sql就像完全不懂基础英语一样。所以,如果这个客户对你很重要——让它发生:o)@RSHAP——明白。如果您能提供更多关于您的特定用例的详细信息,我们将一次又一次地面临这种情况(客户的固执),我们可能会提供更多帮助。主要-如果客户不愿意学习sql,他们希望如何使用/使用数据?同时,请参阅我在回答中添加的更新-04:00是UTC的偏移量,但不是时区。美国和加拿大东部时间的夏令时为-05:00至-04:00。您需要一种方法来指定类似于
America/New_York
的tzid,以便它可以确定每个时间戳的有效偏移量。我不确定在这个环境中是否支持它。它是。您可以将其作为时区字符串传递。Do big query不能有非utc时区的列?@RSHAP-I second Elliott,这就是为什么我认为我的答案仍然是您的选择。从
客户端开始。。。不懂sql
-您应该付出额外的努力,教授/教育客户至少一些基础知识,否则您以后无论如何都会遇到问题。现在不懂Sql就像完全不懂基础英语一样。所以,如果这个客户对你很重要——让它发生:o)@RSHAP——明白。如果您能提供更多关于您的特定用例的详细信息,我们将一次又一次地面临这种情况(客户的固执),我们可能会提供更多帮助。主要-如果客户不愿意学习sql,他们希望如何使用/使用数据?同时,请参阅我在回答中添加的更新-04:00是UTC的偏移量,但不是时区。美国和加拿大东部时间的夏令时为-05:00至-04:00。您需要一种方法来指定类似于
America/New_York
的tzid,以便它可以确定每个时间戳的有效偏移量。我不确定在这个环境中是否支持它。它是。您可以将其作为时区字符串传递。