Dela via


DateTimeDiff (NoSQL-fråga)

GÄLLER FÖR: NoSQL

Returnerar skillnaden, som ett signerat heltal, för den angivna datum- och tidsdelen mellan två datum- och tidsvärden.

Syntax

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

Argument

beskrivning
date_time_part En sträng som representerar en del av en ISO 8601-datumformatspecifikation. Den här delen används för att ange vilken aspekt av datumet som ska jämföras.
start_date_time En utc-datum- och tidssträng (Coordinated Universal Time) i FORMATET ISO 8601 YYYY-MM-DDThh:mm:ss.fffffffZ.
end_date_time En utc-datum- och tidssträng (Coordinated Universal Time) i FORMATET ISO 8601 YYYY-MM-DDThh:mm:ss.fffffffZ.

Kommentar

Mer information om FORMATET ISO 8601 finns i ISO 8601.

Returtyper

Returnerar ett numeriskt värde som är ett signerat heltal.

Exempel

I följande exempel jämförs 4 februari 2019 16:00 UTC och 5 mars 2018 05:00 UTC med hjälp av olika datum- och tidsdelar.

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

Kommentarer

  • Den här funktionen returnerar undefined av följande skäl:
    • Den angivna datum- och tidsdelen är ogiltig.
    • Datum och tid i antingen start- eller slutargumentet är inte en giltig DATUM- och tidssträng för ISO 8601.
  • Datumformatet ISO 8601 anger giltiga datum- och tidsdelar som ska användas med den här funktionen: | | Format | | --- | --- | | Dag | day, dd, d | | Timme | hour, hh | | Minut | minute, mi, n | | För det andra | second , sss | | Millisekunder | millisecond| ms | | Mikrosekunder | microsecond| mcs | | Nanosekunder | nanosecond,ns |
  • Funktionen returnerar alltid ett signerat heltalsvärde. Funktionen returnerar ett mått på antalet gränser som korsats för den angivna datum- och tidsdelen, inte ett mått på tidsintervallet.