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

Log Analytics Workspace/Azure Watchlist:KQL日期时间转换与过滤异常问题

问题描述

Azure Watchlist中的日期列格式为dd/MM/yyyy,尝试使用format_datetime()、datetime()、date()函数将其转换为datetime类型时结果为空,导致过滤查询无法返回符合条件的数据。

复现步骤:

  • 创建包含dd/MM/yyyy格式日期列(如ReviewDate)的Watchlist
  • 执行KQL查询过滤该日期列,示例查询:
    let examplewatchlist = _GetWatchlist("exampleWatchlist");
    examplewatchlist
    | where ReviewDate > now() // 当前时间为01/03/2024
    

Watchlist内有1条满足ReviewDate > now()条件的数据,但查询无结果。

解决方案

问题根源在于KQL的datetime()函数默认仅能解析ISO8601格式的日期字符串(如yyyy-MM-dd),对于dd/MM/yyyy格式的字符串无法直接识别,会返回null,导致过滤失效。

正确的做法是使用parse_datetime()函数,并指定日期格式参数来解析字符串:

let examplewatchlist = _GetWatchlist("exampleWatchlist");
examplewatchlist
// 将dd/MM/yyyy格式的字符串解析为datetime类型
| extend ParsedReviewDate = parse_datetime(ReviewDate, 'dd/MM/yyyy')
// 使用解析后的datetime列进行过滤
| where ParsedReviewDate > now()

如果需要覆盖原列,也可以用extend替换原列:

let examplewatchlist = _GetWatchlist("exampleWatchlist");
examplewatchlist
| extend ReviewDate = parse_datetime(ReviewDate, 'dd/MM/yyyy')
| where ReviewDate > now()

注意事项

  • 确保Watchlist中的日期字符串格式严格匹配dd/MM/yyyy,如果存在格式不一致的行,parse_datetime()会返回null,这些行在过滤时会被排除
  • 如果日期包含时间部分,需要调整格式参数,比如dd/MM/yyyy HH:mm:ss

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:17:43