数值运算符

使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息
适用于: ✅ Azure 数据资源管理器 ✅ Azure Monitor ✅ Microsoft Sentinel

类型 intlongreal 表示数值类型。 可以在这些类型的对之间使用以下运算符:

Operator Description Example
+ 添加 3.14 + 3.14ago(5m) + 5m
- 减法 0.23 - 0.22,
* 乘法 1s * 52 * 2
/ 除法 10m / 1s4 / 2
% 4 % 2
< Less 1 < 1010sec < 1hnow() < datetime(2100-01-01)
> 0.23 > 0.2210min > 1secnow() > ago(1d)
== 等于 1 == 1
!= 不等于 1 != 0
<= 小于或等于 4 <= 5
>= 大于或等于 5 >= 4
in 等于其中一个元素 请参阅此处
!in 不等于任何元素 请参阅此处

注释

若要从一个数字类型转换为另一个数字类型,请使用 to*() 函数。 例如,请参阅 tolong()toint()

算术运算的类型规则

算术运算结果的数据类型由作数的数据类型决定。 如果其中一个作数的类型 real,则结果将为类型 real。 如果两个作数都是整数类型(intlong),则结果将为类型 long

由于这些规则,仅涉及整数的除法运算的结果将被截断为整数,这可能并不总是你想要的。 若要避免截断,请在执行作之前将至少一个整数值real转换为使用 todouble()。

以下示例说明了作数类型如何影响除法运算中的结果类型。

操作 结果 Description
1.0 / 2 0.5 其中一个作数的类型 real,因此结果是 real
1 / 2.0 0.5 其中一个作数的类型 real,因此结果是 real
1 / 2 0 这两个作数都是类型 int,因此结果是 int。 整数除法发生,小数被截断,因此 00.5如预期所示。
real(1) / 2 0.5 为了避免由于整数除法而截断,首先将其中一个 int 作数转换为 real 使用 real() 函数。

有关 modulo 运算符的注释

两个数字的模数始终在 Kusto 中返回一个“小非负数”。 因此,两个数字 N % D 的模数就是这样:0 ≤ (N % D) abs(<)。

例如,以下查询:

print plusPlus = 14 % 12, minusPlus = -14 % 12, plusMinus = 14 % -12, minusMinus = -14 % -12

生成以下结果:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10