如何在 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)
这种方法的优点是相同的逻辑也适用于 timestamp
s 和 datetime
s。查看最后日期会在涉及时间时出现问题。
考虑以下
where date_trunc(FirstSold_Date, month) = date_trunc(date_sub(current_date, interval 1 month), month)
我想创建一个获取上个月的第一个和最后一个日期的方法,这样我就可以使用 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)
这种方法的优点是相同的逻辑也适用于 timestamp
s 和 datetime
s。查看最后日期会在涉及时间时出现问题。
考虑以下
where date_trunc(FirstSold_Date, month) = date_trunc(date_sub(current_date, interval 1 month), month)