DateTimeDiff (NoSQL クエリ)

適用対象: NoSQL

指定した日付と時刻の部分について、2 つの日時値の間の差を符号付き整数で返します。

構文

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

引数

説明
date_time_part ISO 8601 の日付書式指定の部分を表す文字列。 この部分は、日付のどの部分を比較するかを示すために使用されます。
start_date_time ISO 8601 形式 YYYY-MM-DDThh:mm:ss.fffffffZ での協定世界時 (UTC) 日時の文字列。
end_date_time ISO 8601 形式 YYYY-MM-DDThh:mm:ss.fffffffZ での協定世界時 (UTC) 日時の文字列。

注意

ISO 8601 形式の詳細については、「ISO 8601」を参照してください。

戻り値の型

符号付き整数の数値を返します。

使用例

次の例では、さまざまな日付と時刻の部分を使用して、2019 年 2 月 4 日 16:00 UTC2018 年 3 月 5 日 05:00 UTC を比較します。

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

解説

  • この関数は、次の理由から undefined を返します。
    • 指定した日付と時刻の部分が無効です。
    • 開始または終了のいずれかの引数の日時が、有効な ISO 8601 日時文字列ではありません。
  • ISO 8601 日付形式は、この関数で使用する有効な日付と時刻の部分を指定します。| | 形式 | | --- | --- | | | dayddd | | | hourhh | | | minutemin | | | secondsss | | ミリ秒 | millisecondms | | マイクロ秒 | microsecondmcs | | ナノ秒 | nanosecondns |
  • この関数は常に符号付き整数値を返します。 この関数は、時間間隔の測定値ではなく、指定した日付と時刻の部分について通過した境界の数の測定値を返します。