Dela via


Datetime/tidsspann aritmetik

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Kusto har stöd för att utföra aritmetiska åtgärder på värden för 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, datetime(1997-06-25) - datetime(1910-06-11) är hur 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. Till exempel 1d + 2d är det 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 datumet då Cousteau blev en dag gammal.

  • Man kan dela upp två timespan värden för att få sin kvot. Ger 1d / 5h4.8till exempel . Detta ger en möjlighet att uttrycka valfritt 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-epoktid, är ett system för att beskriva en tidpunkt eftersom antalet sekunder som har förflutit 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.

I följande exempel konverteras Unix-tid till UTC-datetime.

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

Resultat

resultat
2019-01-07 21:45:31.0000000

I följande exempel konverteras UTC-datetime 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: