Kusto 支持对 datetime 和 timespan 类型的值执行算术运算。
支持的操作
可以将两个
datetime值相减(但不能相加)来得到一个表示二者之差的timespan值。 例如,datetime(1997-06-25) - datetime(1910-06-11)是 Jacques-Yves Cousteau 去世时的年龄。可以将两个
timespan值相加或相减以得到一个二者之和或差的timespan值。 例如,1d + 2d是三天。可以在一个
timespan值的基础上加上或减去一个datetime值。 例如,datetime(1910-06-11) + 1d是 Cousteau 年龄增大了一天的日期。可以将两个
timespan值相除,得到它们的商。 例如,1d / 5h的结果为4.8。 这样就可以将任何timespan值表示为另一个timespan值的倍数。 例如,若要以秒为单位表示一小时,只需将1h除以1s:1h / 1s(结果很明显:3600)。相反,一个数字值(如
double和long)可以乘以timespan值来得到timespan值。 例如,可以将一个半小时表示为1.5 * 1h。
示例
Unix 时间(也称为 POSIX 时间或 UNIX Epoch 时间)是一种系统,用于将某个时间点描述为自协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 以来经过的秒数(减去闰秒)。
如果数据包括以整数形式表示的 Unix 时间,或者需要转换为这种时间,可使用以下函数。
以下示例将 Unix 时间转换为 UTC 日期/时间。
let fromUnixTime = (t: long) {
datetime(1970-01-01) + t * 1sec
};
print result = fromUnixTime(1546897531)
输出
| 结果 |
|---|
| 2019-01-07 21:45:31.0000000 |
以下示例将 UTC 日期时间转换为 Unix 时间。
let toUnixTime = (dt: datetime) {
(dt - datetime(1970-01-01)) / 1s
};
print result = toUnixTime(datetime(2019-01-07 21:45:31.0000000))
输出
| 结果 |
|---|
| 1546897531 |
相关内容
有关 unix-epoch 时间转换,请参阅以下函数: