メインコンテンツまでスキップ
バージョン: 4.x

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

  1. 年単位への丸め

    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 |
    +-------------------------------------------------+
  2. 原点に基づく丸め処理

     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 |
    +-----------------------------------------------------------------------------------------------+
  3. 期間を単位とした丸め処理

     SELECT YEAR_FLOOR('2023-07-13', 5);
    +----------------------------------------------------+
    | year_floor(cast('2023-07-13' as DATETIMEV2(0)), 5) |
    +----------------------------------------------------+
    | 2020-01-01 00:00:00 |
    +----------------------------------------------------+
  4. ラウンドのオリジンと期間

    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 |
    +-----------------------------------------------------------------------------------------+