Compartilhar via


Aritmética datetime/timespan

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

O Kusto dá suporte à execução de operações aritméticas em valores de tipos datetime e timespan.

Operações com suporte

  • É possível 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) a idade deJacques-Yves Cousteau quando ele morreu.

  • É possível adicionar ou subtrair dois timespan valores para obter um timespan valor que seja sua soma ou diferença. Por exemplo, 1d + 2d são três dias.

  • É possível 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.

  • É possível dividir dois timespan valores para obter o quociente. Por exemplo, 1d / 5h fornece 4.8. Isso dá a um deles 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 vários valores numéricos (como double e long) por um timespan valor para obter um timespan valor. Por exemplo, é possível expressar uma hora e meia como 1.5 * 1h.

Exemplos

O tempo unix, que também é conhecido como hora POSIX ou hora da Época UNIX, é um sistema para descrever um ponto no tempo como o número de segundos decorridos desde 00:00:00 quinta-feira, 1º de janeiro de 1970, UTC (Tempo Universal Coordenado), menos segundos bissextos.

Se os dados incluirem a representação do tempo unix como um inteiro ou você precisar converter nele, as funções a seguir estarão disponíveis.

O exemplo a seguir converte a hora do Unix em datetime UTC.

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

Saída

resultado
2019-01-07 21:45:31.0000000

O exemplo a seguir converte o datetime UTC em hora unix.

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

Saída

resultado
1546897531

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