Aritmetika tanggalwaktu/rentang waktu
Kusto mendukung eksekusi operasi aritmetika pada nilai jenis datetime dan timespan:
Seseorang dapat mengurangi (tetapi tidak menambahkan) dua nilai
datetimeuntuk mendapatkan nilaitimespanyang 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
timespanuntuk mendapatkan nilaitimespanyang merupakan jumlah atau perbedaannya. Misalnya,1d + 2dadalah tiga hari.Seseorang dapat menambahkan atau mengurangi nilai
timespandari nilaidatetime. Misalnya,datetime(1910-06-11) + 1dadalah tanggal Cousteau berusia satu hari.Seseorang dapat membagi dua nilai
timespanuntuk mendapatkan hasil baginya. Misalnya,1d / 5hmemberikan4.8. Ini memberi seseorang kemampuan untuk mengekspresikan nilaitimespanapa pun sebagai kelipatan dari nilaitimespanlain. Misalnya, untuk mengekspresikan satu jam dalam hitungan detik, cukup bagi1hdengan1s:1h / 1s(dengan hasil yang jelas,3600).Sebaliknya, seseorang dapat mengalikan beberapa nilai numerik (seperti
doubledanlong) dengan nilaitimespanuntuk mendapatkan nilaitimespan. Misalnya, seseorang dapat mengekspresikan satu setengah jam sebagai1.5 * 1h.
Contoh: Waktu Unix
Waktu Unix (juga dikenal sebagai waktu POSIX atau waktu UNIX Epoch) adalah sistem untuk menggambarkan titik waktu sebagai jumlah detik yang telah berlalu sejak 00.00.00 Kamis, 1 Januari 1970, Waktu Universal Terkoordinasi (UTC), minus detik kabisat.
Jika data Anda menyertakan representasi waktu Unix sebagai bilangan bulat, atau Anda memerlukan konversi ke format tersebut, fungsi berikut tersedia:
let fromUnixTime = (t:long)
{
datetime(1970-01-01) + t * 1sec
};
print result = fromUnixTime(1546897531)
| hasil |
|---|
| 2019-01-07 21:45:31.0000000 |
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01)) / 1s
};
print result = toUnixTime(datetime(2019-01-07 21:45:31.0000000))
| hasil |
|---|
| 1546897531 |
Catatan
Selain fungsi di atas, lihat fungsi khusus untuk konversi waktu unix-epoch: unixtime_seconds_todatetime()unixtime_milliseconds_todatetime()unixtime_microseconds_todatetime()unixtime_nanoseconds_todatetime()