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

如何使用Kusto的ago函数按年份筛选数据?

问题:Kusto中使用ago()函数按年份筛选数据的替代方法?

我尝试使用Kusto的ago()函数筛选表数据,但该函数仅支持秒(s)、分钟(m)、月和天(d)作为时间单位,无法使用年份(y)。示例如下:

T | where TimeStamp > ago(5s) --> 有效
T | where TimeStamp > ago(5m) --> 有效
T | where TimeStamp > ago(5d) --> 有效
T | where TimeStamp > ago(2y) --> 年份单位无效

请问除了使用ago(365d)或ago(730d)之外,是否有更简便的按年份筛选数据的方法?


回答

有两种更优的方法,不仅比硬编码天数更简便,还能自动处理闰年等时间计算问题:

  1. 直接使用datetime_add()函数
    这个函数支持year作为时间单位,能基于当前时间精准往前推指定年份,逻辑和ago()完全对齐,示例:

    T | where TimeStamp > datetime_add('year', -2, now())
    

    把代码里的-2替换成你需要的年份数即可。

  2. 封装自定义复用函数
    如果需要频繁按年份筛选,可以封装一个自定义函数,调用起来和ago()一样顺手:

    // 定义自定义函数
    let ago_years = (years: int) {
        datetime_add('year', -years, now())
    };
    // 调用筛选最近2年的数据
    T | where TimeStamp > ago_years(2)
    

另外,如果你的需求是筛选从N年前的年初至今的数据,可以用startofyear()函数:

// 筛选2年前的年初到现在的数据
T | where TimeStamp > startofyear(now(), -2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:06:10