在BigQuery中获取不超过一小时的数据

时间:2015-10-30 12:54:05

标签: google-bigquery

尝试使用声明:

SELECT * 
FROM data.example 
WHERE TIMESTAMP(timeCollected) < DATE_ADD(USEC_TO_TIMESTAMP(NOW()), 60, 'MINUTE') 

从我的bigquery数据中获取数据。即使时间不在范围内,它似乎也返回相同的结果集。 timeCollected的格式为2015-10-29 16:05:06

我正在尝试构建一个旨在返回的查询是不超过一小时的数据。因此,应该返回在过去一小时内收集的数据,其余的应该被忽略。

4 个答案:

答案 0 :(得分:8)

您所做的查询意味着“将任何收集时间小于一小时的东西归还给我”,这将完全代表您的整个表格。您需要以下内容(至少从我的评论中得到):

 $app->post('testAjax', function () {
    return 'I am here';
 });

这意味着任何不超过一小时的timeCollected都不会被返回。我相信这就是你想要的。

此外,除非您需要,否则Select *在BigQuery中并不理想。由于数据是按列保存的,因此您只需选择您需要的线路即可节省资金。我不知道你的用例,所以*可能有必要保证

答案 1 :(得分:2)

获取最近一小时内收集的表格数据:

$_REQUEST = array_merge($_GET, $_POST);

https://cloud.google.com/bigquery/table-decorators

答案 2 :(得分:1)

使用标准SQL:

SELECT * FROM data
WHERE timestamp > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE)

答案 3 :(得分:0)

使用标准SQL:

SELECT * FROM data WHERE timestamp > **TIMESTAMP_SUB**(CURRENT_TIMESTAMP(), INTERVAL 60 MINUTE)