"我正在使用查询以获取当前日期到昨天日期的数据,但我无法在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
时,最后两个操作数的顺序很重要。较小的值首先,较大的值第二。