Google bigquery Google BigQuery中的时间戳和标准SQL
我正在尝试(但失败)使用标准SQL在BigQuery中执行以下查询Google bigquery Google BigQuery中的时间戳和标准SQL,google-bigquery,Google Bigquery,我正在尝试(但失败)使用标准SQL在BigQuery中执行以下查询 SELECT user_id FROM dataset.table WHERE timestamp > TIMESTAMP("2017-09-18 00:00") 我不断地得到信息 Query Failed Error: Invalid timestamp: '2017-09-18 00:00' 我不顾一切地尝试了2017-09-18T00:00或类似于传统的SQL时间戳>“2017-09-18 00:00
SELECT
user_id
FROM
dataset.table
WHERE
timestamp > TIMESTAMP("2017-09-18 00:00")
我不断地得到信息
Query Failed
Error: Invalid timestamp: '2017-09-18 00:00'
我不顾一切地尝试了2017-09-18T00:00或类似于传统的SQL时间戳>“2017-09-18 00:00”
,但没有成功
谢谢你的帮助。我相信一个有效的时间戳有一个包含小时、分钟和秒的时间段。时间戳文字省略了秒部分。尝试将其包括在内:
SELECT
user_id
FROM
dataset.table
WHERE
timestamp > TIMESTAMP('2017-09-18 00:00:00')
需要在时间戳中包含秒的原因,以及当前时间戳没有意义的原因,是BigQuery在内部将时间戳存储为历元秒。如果不指定秒数,则无法可靠地存储时间戳
从:
您可以将时间戳数据类型描述为UNIX时间戳或日历日期时间。BigQuery以微秒精度将时间戳数据作为UNIX时间戳在内部存储
正如建议的那样
日期和时间字符串
格式为YYYY-MM-DD HH:MM:SS的日期和时间字符串。UTC和
支持Z说明符
您提供了2017-09-18 00:00
,即YYYY-MM-DD HH:MM
。
您需要提供2017-09-18 00:00:00
因此,您的查询应该如下所示
SELECT
user_id
FROM
dataset.table
WHERE
timestamp > TIMESTAMP("2017-09-18 00:00:00")
编写此表达式而不指定额外零的另一种方法是:
TIMESTAMP(DATE "2017-09-18")
你的
timestamp
栏是什么类型的?该死,就是这样。谢谢,很抱歉问了这个愚蠢的问题。你介意举一个考虑时区的例子吗。由于某些原因,这似乎不起作用:时间戳(“2017-01-09 00:30:00.000 UTC”),给出的时间戳将从06:30:00开始,该字符串中指示的“UTC”无效。感谢您的解释。