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

Power BI URL筛选参数:如何设置CURDATE≥今日减90天?

生成Power BI OData源中“今日减90天”的URL筛选参数

核心思路

OData的$filter参数要求使用ISO 8601 UTC格式的日期字面量(如2022-01-01T00:00:00Z),要实现等价于DAX>= Date.AddDays(DateTime.FixedLocalNow(),-90)的动态筛选,需在Power BI查询编辑器中用M语言计算目标日期,再拼接到URL中。

具体实现步骤

  1. 计算90天前的UTC格式日期字符串
    在Power BI查询编辑器中,用M语言生成符合要求的日期:

    // 计算本地时间下今日减90天的UTC格式字符串
    ninetyDaysAgoUtc = DateTime.ToText(DateTime.AddDays(DateTime.FixedLocalNow(), -90), "yyyy-MM-ddTHH:mm:ssZ")
    
    • 如果数据源的CURDATE字段存储的是UTC时间,需先把本地时间转成UTC再格式化:
      ninetyDaysAgoUtc = DateTime.ToText(DateTime.ToUTC(DateTime.AddDays(DateTime.FixedLocalNow(), -90)), "yyyy-MM-ddTHH:mm:ssZ")
      
  2. 动态拼接OData查询URL
    修改数据源的查询代码,将计算出的日期拼接到$filter参数中。以OData数据源为例,高级编辑器中的代码示例:

    let
        // 计算目标日期
        ninetyDaysAgoUtc = DateTime.ToText(DateTime.AddDays(DateTime.FixedLocalNow(), -90), "yyyy-MM-ddTHH:mm:ssZ"),
        // 动态拼接带筛选参数的URL
        source = OData.Feed("https://your-datasource-url/odata/YourEntity?$filter=CURDATE ge " & ninetyDaysAgoUtc)
    in
        source
    

验证与注意事项

  • 测试时可先手动替换ninetyDaysAgoUtc为固定日期(如2024-02-18T00:00:00Z),确认URL筛选逻辑正常后再启用动态计算
  • 确保日期格式严格遵循yyyy-MM-ddTHH:mm:ssZ,否则服务器可能无法解析筛选条件
  • 该方式直接在GET请求中携带筛选参数,能有效减少返回的数据量,缓解服务器压力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:18:09