“我正在使用查询来获取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
答案 0 :(得分:1)
我希望现在的输出为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)
还请注意,当您使用BETWEEN时-包括它的两面,因此,如果您只需要今天的数据,则可以使用
AND DATE(ingestionTime) = CURRENT_DATE
或仅在昨天-您可以使用
AND DATE(ingestionTime) = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
答案 1 :(得分:0)
您可以使用:
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
时,后两个操作数的顺序很重要。首先是较小的值,其次是较大的值。