问题描述
我正在尝试使用Azure资源图(ARG)查询作为后端来制作Azure监视器工作簿。出现了一个下拉列表,用于选择日期时间值,该值作为参数传递给ARG以过滤结果。它在查询中表示为{dateCreated:start}
值。只要用户在下拉列表中选择了某些内容,此方法就可以正常工作,问题是,如果在datetime字段中未选择任何内容,则条件本质上变为coalesce(todatetime(),todatetime('2016-11-09T02:53:17.4582226Z'))
,这显然使验证逻辑失败,因为todatetime()希望将某些内容传递给它。 KQL中有什么可以克服这个问题的吗?
Resources
| where type == 'microsoft.compute/virtualmachines'
| where tags['datecreated'] > coalesce(todatetime({dateCreated:start}),todatetime('2016-11-09T02:53:17.4582226Z') )
解决方法
iff()
和isempty()
将为您解决问题:
Resources
| where type == 'microsoft.compute/virtualmachines'
| where tags['datecreated'] > iff(isempty({dateCreated:start}),todatetime('2016-11-09T02:53:17.4582226Z'),todatetime({dateCreated:start}))