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

如何在Power Query的Odata.Feed查询中添加DateTimeZone.LocalNow参数以获取当日数据

如何在Power Query的Odata.Feed查询中添加DateTimeZone.LocalNow参数以获取当日数据

嗨,我来帮你搞定这个需求!要让Power Query的OData查询自动获取当日数据,咱们可以通过动态生成符合OData格式的日期字符串,再嵌入到查询URL里来实现,下面分两种场景给你详细说明:

场景一:自动获取当日凌晨至今的数据(最常用的当日数据需求)

如果需要获取当天从凌晨0点开始的所有数据,咱们可以先生成当日起始时间,再转换成OData要求的datetime'YYYY-MM-DDTHH:MM:SS'格式,最后拼到查询URL中。完整的查询代码如下:

let
    // 获取当日凌晨的时区日期时间(确保跨时区也能准确取到本地当天)
    TodayStartTime = DateTimeZone.From(DateTimeZone.Date(DateTimeZone.LocalNow())),
    // 转换成OData查询需要的字符串格式
    FormattedDateFilter = Text.Format("datetime'yyyy-MM-ddTHH:mm:ss'", {TodayStartTime}),
    // 动态拼接OData查询URL
    ODataQueryUrl = Text.Format(
        "https://test.test?$filter=Test eq '1969' and WhseTaskConfWhseTmznDate ge #{0}&$select=Activity",
        {FormattedDateFilter}
    ),
    // 调用OData Feed获取数据
    Source = OData.Feed(ODataQueryUrl, null, [Implementation="2.0"])
in
    Source

场景二:使用可手动调整的参数(灵活适配不同需求)

如果你希望以后能手动修改过滤的起始时间,也可以先创建一个自定义参数,再在查询里引用它:

  1. 打开Power Query编辑器,点击顶部「主页」选项卡的「管理参数」→「新建参数」
  2. 设置参数信息:
    • 参数名称:比如FilterStartDateTime
    • 类型:选择「日期/时间/时区」
    • 当前值:默认可以设为DateTimeZone.From(DateTimeZone.Date(DateTimeZone.LocalNow()))(当日凌晨),或者直接用DateTimeZone.LocalNow()(当前时间)
  3. 然后用下面的代码引用这个参数:
let
    // 引用自定义参数
    SelectedStartDateTime = FilterStartDateTime,
    // 转换成OData格式字符串
    FormattedFilter = Text.Format("datetime'yyyy-MM-ddTHH:mm:ss'", {SelectedStartDateTime}),
    // 拼接查询URL
    DynamicODataUrl = Text.Format(
        "https://test.test?$filter=Test eq '1969' and WhseTaskConfWhseTmznDate ge #{0}&$select=Activity",
        {FormattedFilter}
    ),
    Source = OData.Feed(DynamicODataUrl, null, [Implementation="2.0"])
in
    Source

这样每次刷新查询时,都会自动使用最新的参数值过滤数据,需要调整起始时间时,直接修改参数即可,非常方便~

备注:内容来源于stack exchange,提问作者Yorgenys Borges

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 07:09:38