メインコンテンツまでスキップ
に最終更新

QUARTER_CEIL

説明​

DATE、DATETIME、TIMESTAMP_NS、または TIMESTAMPTZ の値を、指定した四半期単位の期間の直近の境界まで切り上げます。起点となる日時を指定した場合、その日時を基準に期間を計算します。

構文​

QUARTER_CEIL(<datetime>)
QUARTER_CEIL(<datetime>, <origin>)
QUARTER_CEIL(<datetime>, <period>)
QUARTER_CEIL(<datetime>, <period>, <origin>)

パラメータ​

パラメータ説明
<datetime>切り上げる値。DATE、DATETIME、TIMESTAMP_NS、TIMESTAMPTZ に対応します。
<period>省略可能。各期間に含まれる四半期の数を表す INT 型の値です。
<origin>省略可能。期間の起点です。DATE、DATETIME、TIMESTAMP_NS、TIMESTAMPTZ に対応します。デフォルトは 0001-01-01 00:00:00 です。

注記:

  • 期間を指定しない場合、期間を 1 四半期とした場合と同じです。
  • 期間が正の整数でない場合、結果は NULL になります。
  • 結果は常に未来の時刻に切り上げられます。
  • 戻り値の時刻部分は常に 00:00:00 です。

戻り値​

TIMESTAMP_NS 型の入力に対しては、小数秒が固定の九桁精度の TIMESTAMP_NS 型の値を返します。結果が戻り値の型で表現できる範囲にあるか検証されます。TIMESTAMP_NS の範囲は [1677-09-21 00:12:43.145224192, 2262-04-11 23:47:16.854775807] です。

<origin> を省略した TIMESTAMP_NS 型の入力では、上記のデフォルト起点は内部で期間を揃えるための基準としてのみ使用されます。この起点が TIMESTAMP_NS 型で表現できる範囲内にある必要はありません。

<datetime> が DATE 型の場合、戻り値の型は DATE です。 <datetime> が DATETIME 型の場合、戻り値の型は DATETIME です。 <datetime> が TIMESTAMP_NS 型の場合、戻り値の型は小数秒九桁精度の TIMESTAMP_NS です。 <datetime> が TIMESTAMPTZ 型の場合、戻り値の型は TIMESTAMPTZ です。 切り上げられた日時の値を返します。結果の時刻部分は 00:00:00 に設定されます。

例​

'0001-01-01 00:00:00' を起点とし、それぞれ 5 四半期、4 四半期を一期間として、入力日時に最も近い次の期間の開始日時を返します。

SELECT QUARTER_CEIL("2023-07-13 22:28:18", 5), QUARTER_CEIL("2023-07-13 22:28:18", 4);
+----------------------------------------+----------------------------------------+
| QUARTER_CEIL("2023-07-13 22:28:18", 5) | QUARTER_CEIL("2023-07-13 22:28:18", 4) |
+----------------------------------------+----------------------------------------+
| 2024-10-01 00:00:00.000000 | 2024-01-01 00:00:00.000000 |
+----------------------------------------+----------------------------------------+

'2022-01-01 00:00:00' を期間の起点とし、それぞれ 2 四半期、4 四半期を一期間として、入力日時に最も近い次の期間の開始日時を返します。

SELECT QUARTER_CEIL("2023-03-13 22:28:18", 2, "2022-01-01 00:00:00"), QUARTER_CEIL("2023-07-13 22:28:18", 4, "2022-01-01 00:00:00");
+---------------------------------------------------------------+---------------------------------------------------------------+
| QUARTER_CEIL("2023-03-13 22:28:18", 2, "2022-01-01 00:00:00") | QUARTER_CEIL("2023-07-13 22:28:18", 4, "2022-01-01 00:00:00") |
+---------------------------------------------------------------+---------------------------------------------------------------+
| 2023-07-01 00:00:00 | 2024-01-01 00:00:00 |
+---------------------------------------------------------------+---------------------------------------------------------------+

ベストプラクティス​

関連項目:date_ceil