"Is there any way to get the data between current date to yesterday date via query in Bigquery"



"我正在使用查询以获取当前日期到昨天日期的数据,但我无法在bq中获得昨天的日期"

SELECT COUNT (*) 
FROM `urbn-edw-prod.UrbnProcessingErrors.RetailFeedDimensionError` 
WHERE errorReason = "Invalid Merchandise SKUs" 
AND DATE(ingestionTime) between CURRENT_DATE and DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)

我认为这条代码没有给出昨天的日期

DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)

我想从今天到昨天在BQ中获取数据,但我认为我正在使用错误的查询,我希望现在输出为500,但它给出了0

我希望现在输出为500,但它给出0

这是因为您在以下行中的顺序错误

AND DATE(ingestionTime) between CURRENT_DATE and DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)   

您应该使用

AND DATE(ingestionTime) between DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) and CURRENT_DATE    

我认为这条代码没有给出昨天的日期

DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)昨天给您 - 问题是如上所述 - 但是,您也可以在下面使用

DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)    

还要注意,当您在两侧使用之间使用时,包括今天的数据,只需使用

AND DATE(ingestionTime) = CURRENT_DATE     

或昨天 - 您可以使用

AND DATE(ingestionTime) = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)

您可以使用:

WHERE errorReason = 'Invalid Merchandise SKUs' AND
      DATE(ingestionTime) >=  DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) AND
      DATE(ingestionTime) < CURRENT_DATE())

或更简单:

WHERE errorReason = 'Invalid Merchandise SKUs' AND
      DATE(ingestionTime) = CURRENT_DATE())

使用BETWEEN时,最后两个操作数的顺序很重要。较小的值首先,较大的值第二。

最新更新