BigQuery SQL获取当前日期前两个月月初日期的语法修正求助
修正BigQuery SQL语法以获取指定起始日期
错误原因
你原来的SQL语句不符合BigQuery的函数语法规范:
- BigQuery中不存在
DATE_DIFF(month, 0, GETDATE())这种写法,DATE_DIFF的正确格式是DATE_DIFF(date_expression_a, date_expression_b, date_part) GETDATE()是SQL Server的函数,BigQuery中获取当前日期需用CURRENT_DATE()DATE_ADD在BigQuery中的语法为DATE_ADD(date_expression, INTERVAL int64_expression date_part),不能直接将month作为第一个参数
正确写法
要获取当前日期前两个月的当月第一天,可先通过DATE_TRUNC将当前日期截断到月份,再减去2个月:
-- 获取起始日期(当前日期前两个月的当月第一天) SELECT DATE_TRUNC(CURRENT_DATE(), MONTH) - INTERVAL 2 MONTH AS start_date;
也可用DATE_ADD实现等价效果:
SELECT DATE_ADD(DATE_TRUNC(CURRENT_DATE(), MONTH), INTERVAL -2 MONTH) AS start_date;
应用到数据筛选
将上述逻辑嵌入WHERE子句,即可完成指定范围的数据筛选:
SELECT * FROM your_table_name WHERE date_column BETWEEN DATE_TRUNC(CURRENT_DATE(), MONTH) - INTERVAL 2 MONTH AND CURRENT_DATE();
内容的提问来源于stack exchange,提问作者PineNuts0
相关产品推荐
相关产品推荐

