Compartilhar via


DateTimeDiff (consulta NoSQL)

APLICA-SE A: NoSQL

Retorna a diferença, como um inteiro assinado, da parte de data e  hora especificada entre dois valores de data e hora.

Sintaxe

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

Argumentos

Descrição
date_time_part Uma cadeia de caracteres que representa uma parte de uma especificação de formato de data ISO 8601. Essa parte é usada para indicar qual aspecto da data deve ser comparado.
start_date_time Uma cadeia de caracteres de data e hora do Tempo Universal Coordenado (UTC) no formato ISO 8601 YYYY-MM-DDThh:mm:ss.fffffffZ.
end_date_time Uma cadeia de caracteres de data e hora do Tempo Universal Coordenado (UTC) no formato ISO 8601 YYYY-MM-DDThh:mm:ss.fffffffZ.

Observação

Para obter mais informações sobre o formato ISO 8601, consulte ISO 8601.

Tipos de retorno

Retorna um valor numérico que é um número inteiro com sinal.

Exemplos

Os exemplos a seguir comparam 4 de fevereiro de 2019 16:00 UTC e 5 de março de 2018 05:00 UTC usando várias partes de data e hora.

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

Comentários

  • Essa função retorna undefined por estes motivos:
    • A parte de data e hora especificada é inválida.
    • A data e a hora no argumento inicial ou final não é uma cadeia de caracteres de data e hora ISO 8601 válida.
  • O formato de data ISO 8601 especifica as partes válidas de data e hora a serem usadas com essa função: | | Formato | | | --- | --- | | Dia | day, dd, d | | Hora | hour, hh | Minuto | minute, mi, n | | Segundo | second, ss, s | | Milissegundos | millisecond, ms | | Microssegundos | microsecond, mcs | Nanossegundos | nanosecond, ns |
  • A função sempre retorna um valor inteiro assinado. A função retorna uma medição do número de limites cruzados para a parte de data e hora especificada, não uma medição do intervalo de tempo.