DATETIMEDIFF - Cosmos DB'de sorgu dili (Azure ve Doku'da)

DATETIMEDIFF İşlev, belirtilen tarih ve saat bölümünün iki tarih ve saat değeri arasındaki farkını imzalı bir tamsayı olarak döndürür.

Sözdizimi

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

Arguments

Description
date_time_part ISO 8601 tarih biçimi belirtiminin bir bölümünü temsil eden dize. Bu bölüm, tarihin hangi yönünün karşılaştırılabileceğini belirtmek için kullanılır.
start_date_time ISO 8601 biçiminde YYYY-MM-DDThh:mm:ss.fffffffZeşgüdümlü Evrensel Saat (UTC) tarih ve saat dizesi.
end_date_time ISO 8601 biçiminde YYYY-MM-DDThh:mm:ss.fffffffZeşgüdümlü Evrensel Saat (UTC) tarih ve saat dizesi.

Dönüş türleri

İmzalı bir tamsayı olan sayısal bir değer döndürür.

Örnekler

Bu bölüm, bu sorgu dili yapısının nasıl kullanılacağına örnekler içerir.

Tarih ve saat farkı

Bu örnekte işlev, yıl, DATETIMEDIFF ay, gün, saat ve saniye cinsinden iki tarih arasındaki farkı hesaplamak için kullanılır.

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
  }
]

Açıklamalar

  • ISO 8601 tarih biçimi, bu işlevle kullanılacak geçerli tarih ve saat bölümlerini belirtir: | | Biçim | | --- | --- | | Yıl | year, yyyy, yy | | Ay | month, mm, m | | Gün | day, dd, d | | Saat | hour, hh | | Minute | minute, mi, n | | İkinci | second, ss, s | | Milisaniye | millisecond, ms | | Mikrosaniye | microsecond, mcs | | Nanosaniye | nanosecond,ns |
  • Bu işlev şu nedenlerle döndürülüyor undefined :
  • Belirtilen tarih ve saat bölümü geçersiz.
  • Başlangıç veya bitiş bağımsız değişkenindeki tarih ve saat geçerli bir ISO 8601 tarih ve saat dizesi değildir.
  • İşlev her zaman imzalı bir tamsayı değeri döndürür. İşlev, belirtilen tarih ve saat bölümü için kesişen sınır sayısının ölçümlerini döndürür, zaman aralığının ölçümlerini döndürmez.