Partilhar via


Aritmética de data/tempo

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Kusto suporta a execução de operações aritméticas em valores de tipos datetime e timespan.

Operações suportadas

  • Pode-se subtrair (mas não adicionar) dois datetime valores para obter um timespan valor que expresse sua diferença. Por exemplo, datetime(1997-06-25) - datetime(1910-06-11) é quantos anos tinha Jacques-Yves Cousteau quando morreu.

  • Pode-se adicionar ou subtrair dois timespan valores para obter um timespan valor que é a sua soma ou diferença. Por exemplo, 1d + 2d são três dias.

  • Pode-se adicionar ou subtrair um timespan valor de um datetime valor. Por exemplo, datetime(1910-06-11) + 1d é a data em que Cousteau completou um dia de idade.

  • Pode-se dividir dois timespan valores para obter seu quociente. Por exemplo, 1d / 5h4.8. Isso dá a um a capacidade de expressar qualquer timespan valor como um múltiplo de outro timespan valor. Por exemplo, para expressar uma hora em segundos, basta dividir 1h por 1s: 1h / 1s (com o resultado óbvio, 3600).

  • Por outro lado, pode-se multiplicar um valor numérico (como double e long) por um timespan valor para obter um timespan valor. Por exemplo, pode-se expressar uma hora e meia como 1.5 * 1h.

Exemplos

Unix time, que também é conhecido como POSIX time ou UNIX Epoch time, é um sistema para descrever um ponto no tempo como o número de segundos que decorreram desde 00:00:00 Quinta-feira, 1 de janeiro de 1970, Tempo Universal Coordenado (UTC), menos segundos bissextos.

Se seus dados incluem representação do tempo Unix como um inteiro, ou você precisa converter para ele, as seguintes funções estão disponíveis.

O exemplo a seguir converte Unix time em UTC datetime.

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

Realização

Resultado
2019-01-07 21:45:31.0000000

O exemplo a seguir converte datetime UTC para hora Unix.

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

Realização

Resultado
1546897531

Para conversões de tempo unix-epoch, consulte as seguintes funções: