更改时间戳,从上一周开始选择

时间:2017-07-20 05:11:56

标签: google-bigquery

我在Bigquery中运行一个查询,该查询选择上周内完成的所有数据。但是,我只是注意到我的代码是从前一周(周日到周日)选择数据,而不是从我运行查询时开始的直接周。如何更改此查询以实现此目的。谢谢你的帮助!

#standardsql
SELECT count(distinct DeviceID)
FROM `dataworks-356fa.FirebaseArchive.test2`
Where PeripheralType = 5
AND EXTRACT(WEEK FROM createdAt) = EXTRACT(WEEK FROM CURRENT_TIMESTAMP()) - 1 
AND serial != 'null'

我尝试运行下面的查询,但这不会选择今天制作的任何数据条目。

AND EXTRACT(day FROM createdAt) = EXTRACT(day FROM CURRENT_TIMESTAMP()) - 7 

1 个答案:

答案 0 :(得分:1)

假设createdAt是时间戳 - 您应该使用:

  
WHERE DATE(createdAt) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND CURRENT_DATE()    

所以,你的例子就像下面的

#standardsql
SELECT count(distinct DeviceID)
FROM `dataworks-356fa.FirebaseArchive.test2`
Where PeripheralType = 5
AND DATE(createdAt) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND CURRENT_DATE()    
AND serial != 'null'