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도 참고하세요