如何在 Google BigQuery 中检索上个月的第一天和最后一天?

How to retrieve first and last day of the previous month in Google BigQuery?

我想创建一个获取上个月的第一个和最后一个日期的方法,这样我就可以使用 between 语句执行 WHERE 子句。它看起来像这样

WHERE 
FirstSold_Date BETWEEN first_day_previous_month AND last_day_previous_month 

试试这个:

WHERE FirstSold_Date BETWEEN date_trunc(date_sub(current_date(), interval 1 month), month) AND last_day(date_sub(current_date(), interval 1 month), month)

我不推荐 between。相反:

WHERE FirstSold_Date >= date_add(date_trunc(current_date, month), interval -1 month) and
      FirstSold_Date < date_trunc(current_date, month)

这种方法的优点是相同的逻辑也适用于 timestamps 和 datetimes。查看最后日期会在涉及时间时出现问题。

考虑以下

where date_trunc(FirstSold_Date, month) = date_trunc(date_sub(current_date, interval 1 month), month)