Power BI内嵌SQL脚本中日期区间查询失效求助
解决Power BI中SQL脚本筛选近30天数据的问题
正确SQL脚本写法
针对SQL Server数据源,替换原有的INTERVAL语法,使用SQL Server原生的DATEADD函数实现近30天数据筛选:
WHERE dateColumn > DATEADD(DAY, -30, CURRENT_DATE)
如果需要精确处理包含时间的日期字段,可结合CAST函数确保日期范围准确:
WHERE dateColumn >= DATEADD(DAY, -30, CAST(GETDATE() AS DATE))
原写法失效的原因
原语句中的INTERVAL '30' DAY是PostgreSQL、MySQL等数据库的语法,SQL Server不支持该格式,因此在Power BI连接SQL Server数据源时必须使用SQL Server兼容的日期函数。
BETWEEN写法的修正
若坚持使用BETWEEN,需确保日期边界的格式匹配,避免因时间部分导致数据遗漏:
WHERE dateColumn BETWEEN DATEADD(DAY, -30, CURRENT_DATE) AND CURRENT_DATE
注:如果dateColumn包含时间戳,CURRENT_DATE会默认转换为当天00:00:00,此时会漏掉当天00:00:00之后的数据,更推荐使用>或>=的方式。
内容的提问来源于stack exchange,提问作者Luntas
相关产品推荐
相关产品推荐

