Datetime/tidsintervallsaritmetik

Kusto har stöd för att utföra aritmetiska åtgärder på värden av typer datetime och timespan.

Åtgärder som stöds

  • Man kan subtrahera (men inte lägga till) två datetime värden för att få ett timespan värde som uttrycker deras skillnad. Till exempel hur datetime(1997-06-25) - datetime(1910-06-11) gammal var Jacques-Yves Cousteau när han dog.

  • Man kan lägga till eller subtrahera två timespan värden för att få ett timespan värde som är deras summa eller skillnad. Är till exempel 1d + 2d tre dagar.

  • Man kan lägga till eller subtrahera ett timespan värde från ett datetime värde. Till exempel datetime(1910-06-11) + 1d , är det datum då Cousteau blev en dag gammal.

  • Man kan dela upp två timespan värden för att få sin kvot. Ger till exempel 1d / 5h4.8. Detta ger en möjlighet att uttrycka ett timespan värde som en multipel av ett annat timespan värde. Om du till exempel vill uttrycka en timme i sekunder delar du bara upp 1h1smed : 1h / 1s (med det uppenbara resultatet, 3600).

  • Däremot kan man flera ett numeriskt värde (till exempel double och long) med ett timespan värde för att hämta ett timespan värde. Till exempel kan man uttrycka en och en halv timme som 1.5 * 1h.

Exempel

Unix-tid, som även kallas POSIX-tid eller UNIX Epoch-tid, är ett system för att beskriva en tidpunkt som antalet sekunder som har gått sedan 00:00:00 torsdag, 1 januari 1970, Coordinated Universal Time (UTC), minus skottsekunder.

Om dina data innehåller representation av Unix-tid som ett heltal, eller om du behöver konvertera till det, är följande funktioner tillgängliga.

Från Unix-tid

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

Resultat

resultat
2019-01-07 21:45:31.0000000

Till Unix-tid

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

Resultat

resultat
1546897531

Information om unix-epoch-tidskonverteringar finns i följande funktioner: