如何在Kusto中指定55至60分钟(含两端)的时间范围?
正确判断分钟是否处于55到60区间的处理方式
你代码里用00确实存在逻辑问题:datetime_part("minute", now())返回的是0-59的整数,0代表整点的分钟数,而非60。直接写between (55 .. 00)会被解析为判断分钟数是否在55到0之间,这和你想要的「55到60(含两端)」逻辑完全相反。
下面是两种正确的处理方式:
方式一:直接判断分钟数值
根据你的实际需求选择:
- 若需求是分钟为55-59(接近下一小时的最后5分钟):
let current_time = now(); let current_minute = datetime_part("minute", current_time); RequiredTime = iff(current_minute between 55 .. 59, variable1, variable2)
- 若需求是分钟为55-59,或00(整点):
let current_time = now(); let current_minute = datetime_part("minute", current_time); RequiredTime = iff(current_minute >= 55 or current_minute == 0, variable1, variable2)
方式二:通过时间差判断(更直观)
如果核心需求是「当前时间距离下一小时不超过5分钟」,可以直接计算时间差,避开分钟数的边界歧义:
let current_time = now(); let next_hour = datetime_trunc("hour", current_time) + 1h; let minutes_to_next_hour = datetime_diff(next_hour, current_time, "minute"); RequiredTime = iff(minutes_to_next_hour <= 5, variable1, variable2)
关键提醒
datetime_part("minute", ...)的返回值范围是0-59,不存在60这个数值,不要用60作为判断条件。- 使用
between (a .. b)时,必须保证a <= b,否则区间判断逻辑会失效——它只会处理连续的数值区间,不会自动识别跨整点的循环场景。
内容的提问来源于stack exchange,提问作者LastCodebender
相关产品推荐
相关产品推荐

