YEAR_FLOOR
デスクリプション
指定された日付を、指定された年間隔の開始点まで切り下げるために使用されます。複数のバリアントをサポートしており、丸め処理において開始時刻(origin)と期間(period)を異なる方法で指定できます。
Syntax
YEAR_FLOOR(<date_value>, [<period> | <origin_date_value>])
YEAR_FLOOR(<date_value>, <period>, <origin_date_value>)
パラメータ
| Parameter | タイプ | デスクリプション |
|---|---|---|
<date_value> | DATE, DATETIME | 丸める対象となるDATEまたはDATETIMEの入力値。 |
<origin_date_value> | DATE, DATETIME | 基準点として使用されるDATEまたはDATETIMEの入力値。指定されない場合、デフォルトは0001-01-01T00:00:00です。 |
<period> | INT | 丸め間隔。1サイクルあたりの年数を示す正の整数。 |
Example
-
年単位への丸め
SELECT YEAR_FLOOR('2023-07-13 22:28:18');+----------------------------------------------------------+
| year_floor(cast('2023-07-13 22:28:18' as DATETIMEV2(0))) |
+----------------------------------------------------------+
| 2023-01-01 00:00:00 |
+----------------------------------------------------------+SELECT YEAR_FLOOR('2023-07-13');+-------------------------------------------------+
| year_floor(cast('2023-07-13' as DATETIMEV2(0))) |
+-------------------------------------------------+
| 2023-01-01 00:00:00 |
+-------------------------------------------------+ -
原点に基づく丸め処理
SELECT YEAR_FLOOR('2023-07-13 22:28:18', '2020-03-15');+-----------------------------------------------------------------------------------------------+
| year_floor(cast('2023-07-13 22:28:18' as DATETIMEV2(0)), cast('2020-03-15' as DATETIMEV2(0))) |
+-----------------------------------------------------------------------------------------------+
| 2023-03-15 00:00:00 |
+-----------------------------------------------------------------------------------------------+ -
期間を単位とした丸め処理
SELECT YEAR_FLOOR('2023-07-13', 5);+----------------------------------------------------+
| year_floor(cast('2023-07-13' as DATETIMEV2(0)), 5) |
+----------------------------------------------------+
| 2020-01-01 00:00:00 |
+----------------------------------------------------+ -
ラウンドのオリジンと期間
SELECT YEAR_FLOOR('2023-07-13 22:28:18', 5, '2018-06-01');+--------------------------------------------------------------------------------------------------+
| year_floor(cast('2023-07-13 22:28:18' as DATETIMEV2(0)), 5, cast('2018-06-01' as DATETIMEV2(0))) |
+--------------------------------------------------------------------------------------------------+
| 2023-06-01 00:00:00 |
+--------------------------------------------------------------------------------------------------+SELECT YEAR_FLOOR('2023-07-13', 5, '2016-01-01');+-----------------------------------------------------------------------------------------+
| year_floor(cast('2023-07-13' as DATETIMEV2(0)), 5, cast('2016-01-01' as DATETIMEV2(0))) |
+-----------------------------------------------------------------------------------------+
| 2021-01-01 00:00:00 |
+-----------------------------------------------------------------------------------------+