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

请求将指定复杂SQL转换为正确的KQL语句(附错误实现)

修正后的KQL语句及说明

问题分析

你的原有代码存在三个核心问题:

  • 生成的日期范围是2024全年,而非需求指定的12月1日-31日
  • 未对created_date进行US/East时区转换处理
  • 关联条件使用了精确匹配(==),而非需求的范围匹配

正确KQL实现

// 1. 生成2024年12月1日至12月31日的日期列表
let days = range day from datetime(2024-12-01) to datetime(2024-12-31) step 1d;

// 2. 处理table1:转换created_date到US/East时区,并提取日期部分
let table1_est = table1
    // 假设原始created_date为UTC时区,若实际为其他时区,修改第二个参数
    | extend created_date_est = convert_timezone(created_date, "UTC", "Eastern Standard Time")
    | extend created_date_est_date = date(created_date_est);

// 3. 关联并筛选符合范围条件的记录
days
| join kind=inner table1_est on 1==1  // 先做交叉连接
| where created_date_est_date between (day - 366d .. day)  // 2024是闰年,全年366天
| project day, created_date_est_date, *  // 保留需要的字段,可按需调整

关键说明

  • 时区转换:使用convert_timezone函数,需确认created_date的原始时区(示例中假设为UTC),若实际为其他时区,替换函数的第二个参数(源时区)
  • 范围条件:2024年为闰年,全年共366天,因此用day - 366d计算起始日期
  • 关联方式:由于KQL的join语法不支持直接在on子句中使用范围比较,因此先通过1==1做交叉连接,再通过where子句筛选符合范围的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:18:19