DateTimeBin (NoSQL クエリ)
適用対象: NoSQL
指定した日時文字列の部分をビン分割 (丸め処理) した結果である日時文字列値を返します。
構文
DateTimeBin(<date_time> , <date_time_part> [, <bin_size>] [, <bin_start_date_time>])
引数
説明 | |
---|---|
date_time |
ISO 8601 形式 YYYY-MM-DDThh:mm:ss.fffffffZ での協定世界時 (UTC) 日時の文字列。 |
date_time_part |
ISO 8601 の日付書式指定の部分を表す文字列。 この部分は、日付のどの部分をビン分割するかを示すために使用されます。 具体的には、この部分の引数は、ビン分割 (丸め処理) の粒度のレベルを表します。 この部分の最小粒度は日で、最大粒度はナノ秒です。 |
bin_size "(省略可能)" |
ビンのサイズを指定する省略可能な数値。 指定しない場合は、既定値の 1 が使用されます。 |
bin_start_date_time "(省略可能)" |
ISO 8601 形式 YYYY-MM-DDThh:mm:ss.fffffffZ での省略可能な協定世界時 (UTC) 日時の文字列。 この日時引数は、ビンの開始日を指定します。 指定しない場合、既定値は Unix エポック 1970-01-01T00:00:00.000000Z です。 |
戻り値の型
ISO 8601 形式 YYYY-MM-DDThh:mm:ss.fffffffZ
で日時の文字列 (UTC) を返します。
例
次の例では、2021 年 1 月 8 日18 時 35 分 (UTC) をさまざまな値でビン分割します。 この例では、ビン サイズとビンの開始日時も変更します。
SELECT VALUE {
binDay: DateTimeBin("2021-01-08T18:35:00.0000000", "dd"),
binHour: DateTimeBin("2021-01-08T18:35:00.0000000", "hh"),
binSecond: DateTimeBin("2021-01-08T18:35:00.0000000", "ss"),
binFiveHours: DateTimeBin("2021-01-08T18:35:00.0000000", "hh", 5),
binSevenDaysUnixEpoch: DateTimeBin("2021-01-08T18:35:00.0000000", "dd", 7),
binSevenDaysWindowsEpoch: DateTimeBin("2021-01-08T18:35:00.0000000", "dd", 7, "1601-01-01T00:00:00.0000000")
}
[
{
"binDay": "2021-01-08T00:00:00.0000000Z",
"binHour": "2021-01-08T18:00:00.0000000Z",
"binSecond": "2021-01-08T18:35:00.0000000Z",
"binFiveHours": "2021-01-08T15:00:00.0000000Z",
"binSevenDaysUnixEpoch": "2021-01-07T00:00:00.0000000Z",
"binSevenDaysWindowsEpoch": "2021-01-04T00:00:00.0000000Z"
}
]
解説
- この関数は、次の理由から
undefined
を返します。- 指定された日付と時刻の部分が無効です。
- ビン サイズの値が有効な整数ではないか、0 であるか、負の値です。
- いずれかの引数の日付と時刻が、有効な ISO 8601 日時文字列ではありません。
- ビンの開始日時が、年
1601
(Windows エポック) よりも前になっています。
- ISO 8601 日付形式は、この関数で使用する有効な日付と時刻の部分を指定します。| | 形式 | | --- | --- | | 日 |
day
、dd
、d
| | 時 |hour
、hh
| | 分 |minute
、mi
、n
| | 秒 |second
、ss
、s
| | ミリ秒 |millisecond
、ms
| | マイクロ秒 |microsecond
、mcs
| | ナノ秒 |nanosecond
、ns
|