如何在KQL中移除数据表列名后的[UTC]标识?
解决Azure Sentinel中KQL时间转换后列值带[UTC]标识的问题
问题场景
在清理从syslog导入Azure Sentinel的列时,尝试将UTC时间转换为美国太平洋时间,编写了以下KQL代码:
print dt=now() | extend pacific_dt = datetime_utc_to_local(dt, 'US/Pacific') | extend PacificTime = pacific_dt | project-away dt
预期生成pacific_dt和PacificTime两列,但输出时列值后均附加了[UTC]标识,需要移除该标识或生成无此标识的新列。
解决方案
方法1:转换为格式化字符串(推荐)
使用format_datetime函数将带时区的datetime类型转换为指定格式的字符串,输出时不会附带时区标识:
print dt=now() | extend pacific_dt = datetime_utc_to_local(dt, 'US/Pacific') | extend PacificTime = format_datetime(pacific_dt, 'yyyy-MM-dd HH:mm:ss.fffffff') | project-away dt
可根据需求调整格式字符串,比如'yyyy-MM-dd HH:mm:ss'简化显示内容。
方法2:转换为无时区的datetime类型
若需保持列的datetime类型,可先将带时区的时间格式化为字符串,再转换回datetime类型(此操作会丢失时区信息,仅保留本地时间数值):
print dt=now() | extend pacific_dt = datetime_utc_to_local(dt, 'US/Pacific') | extend PacificTime = todatetime(format_datetime(pacific_dt, 'yyyy-MM-ddTHH:mm:ss.fffffff')) | project-away dt
内容的提问来源于stack exchange,提问作者mfalde
相关产品推荐
相关产品推荐

