Aritmetika tanggalwaktu/rentang waktu

Kusto mendukung melakukan operasi aritmatika pada nilai jenis datetime dan timespan.

Operasi yang didukung

  • Seseorang dapat mengurangi (tetapi tidak menambahkan) dua nilai datetime untuk mendapatkan nilai timespan yang mengekspresikan perbedaannya. Misalnya, datetime(1997-06-25) - datetime(1910-06-11) adalah berapa usia Jacques-Yves Cousteau saat dia meninggal.

  • Seseorang dapat menambahkan atau mengurangi dua nilai timespan untuk mendapatkan nilai timespan yang merupakan jumlah atau perbedaannya. Misalnya, 1d + 2d adalah tiga hari.

  • Seseorang dapat menambahkan atau mengurangi nilai timespan dari nilai datetime. Misalnya, datetime(1910-06-11) + 1d adalah tanggal Cousteau berusia satu hari.

  • Seseorang dapat membagi dua nilai timespan untuk mendapatkan hasil baginya. Misalnya, 1d / 5h memberikan 4.8. Ini memberi seseorang kemampuan untuk mengekspresikan nilai timespan apa pun sebagai kelipatan dari nilai timespan lain. Misalnya, untuk mengekspresikan satu jam dalam hitungan detik, cukup bagi 1h dengan 1s: 1h / 1s (dengan hasil yang jelas, 3600).

  • Sebaliknya, seseorang dapat mengalikan beberapa nilai numerik (seperti double dan long) dengan nilai timespan untuk mendapatkan nilai timespan. Misalnya, seseorang dapat mengekspresikan satu setengah jam sebagai 1.5 * 1h.

Contoh

Waktu Unix, yang juga dikenal sebagai waktu POSIX atau waktu UNIX Epoch, adalah sistem untuk menjelaskan titik waktu sebagai jumlah detik yang telah berlalu sejak Kamis pukul 00:00:00, 1 Januari 1970, Waktu Universal Terkoordinasi (UTC), minus detik lompatan.

Jika data Anda menyertakan representasi waktu Unix sebagai bilangan bulat, atau Anda memerlukan konversi ke dalamnya, fungsi berikut tersedia.

Dari waktu Unix

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

Output

hasil
2019-01-07 21:45:31.0000000

Ke waktu Unix

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

Output

hasil
1546897531

Untuk konversi waktu unix-epoch, lihat fungsi berikut: