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

Kusto查询执行报错DateTime与String类型无法执行算术表达式如何解决

报错原因

你遇到的类型不匹配错误由两个语法问题共同导致:

  • format_datetime() 函数返回值为字符串类型,你生成的Time字段是字符串格式,无法直接和now()返回的datetime类型做算术减法
  • facet by运算符会返回多个独立的结果集,不能直接在其后续串接extend、project这类行级处理运算符

修复方案

场景1:不需要拆分结果集,仅需按对应字段分组计算

如果你的需求只是按Time、Status、ID去重分组后计算时间差,直接用summarize by替代facet by,同时保留原始datetime类型的Testtime字段做时间运算即可:

| extend FormattedTime = format_datetime(Testtime,'yyyy-MM-dd h:m:s.fffffff') 
| summarize by FormattedTime, Status, ID, Testtime
| extend minutes = (now() - Testtime)/1m
| project minutes, ID
| limit 1

注:Kusto中两个datetime类型值相减会得到timespan类型结果,直接除以1m(代表1分钟的时间间隔)就能得到数值类型的分钟数,比除以60的写法更规范

场景2:需要按三个字段拆分独立结果集计算

如果你确实需要对每个分组的子集单独做运算,用partition by替代facet by即可:

| extend FormattedTime = format_datetime(Testtime,'yyyy-MM-dd h:m:s.fffffff') 
| partition by FormattedTime, Status, ID
{
    extend minutes = (now() - Testtime)/1m
    | project minutes, ID
    | limit 1
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:18:04