Datetime* / timespan 算術

Kusto では、型 datetime と の値に対する算術演算の実行が timespanサポートされています。

サポート対象の操作

  • 2 つの値を減算* (ただし加算しない) して、datetimeその差を表すtimespan値を取得することができます。 たとえば datetime(1997-06-25) - datetime(1910-06-11) は、Jacques-Yves Cousteau が亡くなったときの年齢です。

  • 2つのtimespan値を加算または減算*して、 timespanそれらの合計または差である値を取得することもできます。 たとえば 1d + 2d は、3日間です。

  • あるtimespan値からあるdatetime値へと、加算または減算*することもできます。 たとえば datetime(1910-06-11) + 1d は、Cousteau が生後1日となった date* (日付) です。

  • 2つのtimespan値を除算*して商を取得できます。 たとえば、1d / 5h4.8に足します。 これにより、任意のtimespan値を別のtimespan値の倍数として表すことができます。 たとえば、1 時間を秒で 表すには、1h1s/1h / 1s で除算すれば良いのです (3600 になるのは明らかです)。

  • 逆に、ある数値 (doublelongなど) をあるtimespan値の丸め倍数にして、1つのtimespan値を取得することもできます。 たとえば、1時間半は 1.5 * 1hという表し方も可能です。

UNIX 時間 (POSIX 時刻または UNIX エポック時間とも呼ばれます) は、1970 年 1 月 1 日木曜日 00:00:00 木曜日、協定世界時 (UTC) からうるう秒数を差し引いた秒数として、ある時点を表すシステムです。

データに Unix 時刻の表現が整数として含まれている場合、またはデータに変換する必要がある場合は、次の関数を使用できます。

Unix 時刻から

let fromUnixTime = (t: long) { 
    datetime(1970-01-01) + t * 1sec 
};
print result = fromUnixTime(1546897531)

出力

結果
2019-01-07 21:45:31.0000000

Unix 時刻へ

let toUnixTime = (dt: datetime) { 
    (dt - datetime(1970-01-01)) / 1s 
};
print result = toUnixTime(datetime(2019-01-07 21:45:31.0000000))

出力

結果
1546897531

unix エポック時間変換については、次の関数を参照してください。