你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Datetime / timespan 算术

适用于:✅Azure 数据资源管理器Azure Monitor✅ Sentinel

Kusto 支持对类型和datetimetimespan类型的值执行算术运算。

支持的操作

  • 一个值可以减去(但不加)两 datetimetimespan 值,以获取表示其差异的值。 例如, datetime(1997-06-25) - datetime(1910-06-11) 库斯特乌去世时,Jacques-Yves 年纪大了。

  • 一个值可以加减两 timespan 个值,以获取一个 timespan 值,即其总和或差异。 例如, 1d + 2d 是三天。

  • 用户可以从datetime值中添加或减去timespan值。 例如, datetime(1910-06-11) + 1d Cousteau 的日期是一天大。

  • 一个可以除以两 timespan 个值来获取其商。 例如, 1d / 5h 提供 4.8。 这使一个值能够将任何 timespan 值表示为另一个 timespan 值的倍数。 例如,若要以秒为单位表达一小时,只需除以1h1s1h / 1s (结果明显,3600)。

  • 相反,一个数字值(例如doublelong)可以按一个值来获取一个timespantimespan值。 例如,一个可以表达一个半小时作为 1.5 * 1h

例子

Unix 时间(也称为 POSIX 时间或 UNIX 纪元时间)是一个系统,用于将时间点描述为自 1970 年 1 月 1 日星期四 00:00:00 起经过的秒数,即协调世界时 (UTC),减去跃秒。

如果数据包含 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 时间转换,请参阅以下函数: