You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks上月数据查询:函数使用位置及数据提取疑问

在Databricks中提取上月数据的正确写法

要筛选仅上月的数据,过滤逻辑必须写在WHERE子句里,SELECT子句仅用于指定要展示的字段。以下是两种可靠实现方式:

方式1:通过日期范围精准匹配

利用date_trunc和last_day构造上月的起止日期,适合需要完整日期范围过滤的场景:

SELECT *
FROM your_table
WHERE your_date_column 
  BETWEEN date_trunc('month', add_months(current_date(), -1)) 
  AND last_day(add_months(current_date(), -1))
  • add_months(current_date(), -1):获取当前日期往前推1个月的日期
  • date_trunc('month', ...):得到上月的第一天
  • last_day(...):得到上月的最后一天

方式2:通过年月匹配

直接匹配记录的年、月与上月的年、月,适合只关注年月维度的场景:

SELECT *
FROM your_table
WHERE 
  year(your_date_column) = year(add_months(current_date(), -1))
  AND month(your_date_column) = month(add_months(current_date(), -1))

关于month(date, -1)的说明

你尝试的month(date, -1)是对单条记录的日期字段减1个月后取月份值,这并不是筛选上月数据的正确用法。如果要在结果中展示上月的月份数,才需要把类似逻辑放在SELECT子句,比如:

SELECT 
  your_date_column,
  month(add_months(current_date(), -1)) AS last_month_number
FROM your_table
WHERE 
  year(your_date_column) = year(add_months(current_date(), -1))
  AND month(your_date_column) = month(add_months(current_date(), -1))

内容的提问来源于stack exchange,提问作者shosho88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:00:24