Арифметика даты и времени и диапазона времени

Kusto поддерживает выполнение арифметических операций со значениями типов datetime и timespan.

Поддерживаемые операции

  • Можно вычесть (но не сложить) два datetime значения, чтобы получить значение, timespan которое выражает их разницу. Например, datetime(1997-06-25) - datetime(1910-06-11) сколько лет было Жак-Ив Кусто , когда он умер.

  • Можно сложить или вычесть два timespan значения, чтобы получить значение, являющееся timespan их суммой или разницей. Например, 1d + 2d это три дня.

  • Можно сложить или вычесть timespan значение из datetime значения. Например, это дата, datetime(1910-06-11) + 1d когда Кусто превратился в один день.

  • Можно разделить два timespan значения, чтобы получить их частное значение. Например, 1d / 5h предоставляет .4.8 Это дает возможность выразить любое timespan значение как кратное другому timespan значению. Например, чтобы выразить час в секундах, просто разделите на 1h1s: 1h / 1s (с очевидным результатом , 3600).

  • И наоборот, можно выполнить несколько числовых значений (например, double и long) по значению timespan , чтобы получить timespan значение. Например, можно выразить полтора часа как 1.5 * 1h.

Примеры

Время Unix, также известное как время POSIX или время эпохи UNIX, — это система, описывающая точку во времени как количество секунд, прошедших с 00:00:00 четверга, 1 января 1970 года в формате UTC, минус високосные секунды.

Если данные содержат представление времени Unix в виде целого числа или требуется преобразование в него, доступны следующие функции.

Со времени Unix

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

Выходные данные

набор по
2019-01-07 21:45:31.0000000

Время в Unix

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

Выходные данные

набор по
1546897531

Сведения о преобразованиях времени в unix-эпохах см. в следующих функциях: