Google BigQuery中的TIMESTAMP和标准SQL

Fla*_*ert 0 google-bigquery

我正在尝试(但失败)使用标准SQL在BigQuery中执行以下查询

SELECT
  user_id
FROM
  dataset.table
WHERE
  timestamp > TIMESTAMP("2017-09-18 00:00")
Run Code Online (Sandbox Code Playgroud)

我不断得到信息

Query Failed
Error: Invalid timestamp: '2017-09-18 00:00'
Run Code Online (Sandbox Code Playgroud)

我尝试,绝望地使用2017-09-18T00:00或喜欢传统SQL都timestamp > "2017-09-18 00:00"没有成功。

谢谢你的帮助。

Tim*_*sen 5

我认为有效的时间戳记包含一个小时,分钟秒的时间部分。您的时间戳文字省略了秒部分。尝试包括它:

SELECT
    user_id
FROM
    dataset.table
WHERE
    timestamp > TIMESTAMP('2017-09-18 00:00:00')
Run Code Online (Sandbox Code Playgroud)

您需要在时间戳中包含秒,以及当前的时间戳没有意义的原因是,BigQuery在内部将时间戳存储为纪元秒。如果不指定秒数,则不能可靠地存储您的时间戳。

文档中

您可以将TIMESTAMP数据类型描述为UNIX时间戳或日历日期时间。BigQuery在内部将TIMESTAMP数据存储为UNIX时间戳,精度为微秒。