Поделиться через


DATETIMEDIFF — язык запросов в Cosmos DB (в Azure и Fabric)

Функция DATETIMEDIFF возвращает разницу в виде целого числа со знаком указанной даты и времени между двумя значениями даты и времени.

Синтаксис

DATETIMEDIFF(<date_time_part>, <start_date_time>, <end_date_time>)

Arguments

Description
date_time_part Строка, представляющая часть спецификации формата даты ISO 8601. Эта часть используется для указания того, какой аспект даты для сравнения.
start_date_time Строка даты и времени (UTC) в формате YYYY-MM-DDThh:mm:ss.fffffffZISO 8601.
end_date_time Строка даты и времени (UTC) в формате YYYY-MM-DDThh:mm:ss.fffffffZISO 8601.

Типы возвращаемых данных

Возвращает числовое значение, которое является целым числом со знаком.

Примеры

В этом разделе содержатся примеры использования этой конструкции языка запросов.

Разница даты и времени

В этом примере DATETIMEDIFF функция используется для вычисления разницы между двумя датами в годах, месяцах, днях, часах и секундах.

SELECT VALUE {
  diffPastYears: DATETIMEDIFF("yyyy", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
  diffPastMonths: DATETIMEDIFF("mm", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
  diffPastDays: DATETIMEDIFF("dd", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
  diffPastHours: DATETIMEDIFF("hh", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
  diffPastSeconds: DATETIMEDIFF("ss", "2019-02-04T16:00:00.0000000", "2018-03-05T05:00:00.0000000"),
  diffFutureYears: DATETIMEDIFF("yyyy", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
  diffFutureMonths: DATETIMEDIFF("mm", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
  diffFutureDays: DATETIMEDIFF("dd", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
  diffFutureHours: DATETIMEDIFF("hh", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000"),
  diffFutureSeconds: DATETIMEDIFF("ss", "2018-03-05T05:00:00.0000000", "2019-02-04T16:00:00.0000000")
}
[
  {
    "diffPastYears": -1,
    "diffPastMonths": -11,
    "diffPastDays": -336,
    "diffPastHours": -8075,
    "diffPastSeconds": -29070000,
    "diffFutureYears": 1,
    "diffFutureMonths": 11,
    "diffFutureDays": 336,
    "diffFutureHours": 8075,
    "diffFutureSeconds": 29070000
  }
]

Замечания

  • Формат даты ISO 8601 указывает допустимые части даты и времени, используемые с этой функцией: | | Формат | | --- | --- | | Year | year, yyyyyy | | Месяц | month, mmm | | День | day, ddd | | Час | hour, hh | | Minute | minute, min | | Во-вторых | second, sss | | Миллисекунда | millisecond, ms | | Microsecond | microsecond, mcs | | Nanosecond | nanosecond,ns |
  • Эта функция возвращается undefined по следующим причинам:
  • Указанная часть даты и времени недопустимая.
  • Дата и время в аргументе начала или окончания не является допустимой строкой даты и времени ISO 8601 .
  • Функция всегда возвращает целочисленное значение со знаком. Функция возвращает измерение количества границ, пересекаемых для указанной даты и времени, а не измерения интервала времени.