본문으로 건너뛰기
최종 수정: 에

QUARTER_FLOOR

설명​

DATE, DATETIME, TIMESTAMP_NS 또는 TIMESTAMPTZ 값을 지정된 분기 주기의 가장 가까운 경계로 내림합니다. 기준 시간이 지정되면 해당 시간을 기준으로 주기를 계산합니다.

구문​

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

매개변수​

매개변수설명
<datetime>내림할 값입니다. DATE, DATETIME, TIMESTAMP_NS, TIMESTAMPTZ를 지원합니다.
<period>분기 주기 값입니다. 타입은 INT이며, 각 주기에 포함되는 분기 수를 나타냅니다.
<origin>주기의 시작점입니다. DATE, DATETIME, TIMESTAMP_NS, TIMESTAMPTZ를 지원하며, 기본값은 0001-01-01 00:00:00입니다.

참고:

  • period를 지정하지 않으면 1분기를 주기로 사용하는 것과 같습니다
  • period가 양의 정수가 아니면 함수 결과는 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_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도 참고하세요