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

QUARTER_FLOOR

説明​

日時値を、指定した四半期単位の期間の境界まで切り下げます。基準時刻を指定した場合は、その時刻を基準に期間を計算します。

構文​

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

パラメータ​

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

注意事項:

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

戻り値​

<datetime> が DATE 型の場合、戻り値の型は DATE です。 <datetime> が DATETIME 型の場合、戻り値の型は DATETIME です。 結果の時刻部分は 00:00:00 に設定されます。period が正の整数でない場合は NULL を返します。

例​

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

SELECT QUARTER_FLOOR("2023-07-13 22:28:18", 5), QUARTER_FLOOR("2023-07-13 22:28:18", 4);
+-----------------------------------------+-----------------------------------------+
| QUARTER_FLOOR("2023-07-13 22:28:18", 5) | QUARTER_FLOOR("2023-07-13 22:28:18", 4) |
+-----------------------------------------+-----------------------------------------+
| 2021-01-01 00:00:00 | 2022-01-01 00:00:00 |
+-----------------------------------------+-----------------------------------------+

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

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

ベストプラクティス​

date_floor も参照してください。