- 카테고리:
[ NOT ] BETWEEN¶
입력 식(숫자 또는 문자열)이 지정된 하한과 상한 내에 있을 때 TRUE
를 반환합니다.
구문¶
<expr> [ NOT ] BETWEEN <lower_bound> AND <upper_bound>
인자¶
expr
입력 식입니다.
lower_bound
하한입니다.
upper_bound
상한입니다.
반환¶
함수는 BOOLEAN 형식의 값을 반환합니다.
사용법 노트¶
expr BETWEEN lower_bound AND upper_bound
는expr >= lower_bound AND expr <= upper_bound
와 동등합니다.지정된 상한이 하한보다 커야 합니다.
인자 값의 데이터 타입은 동일하거나 호환 가능 해야 합니다.
함수가 암시적으로 값을 다른 데이터 타입으로 형변환하면 예기치 않은 결과가 반환될 수 있습니다.
예를 들어
expr
이 TIMESTAMP 값이고lower_bound
및upper_bound
값이 DATE 값인 경우 DATE 값은 암시적으로 TIMESTAMP 값으로 형변환되고 시간은00:00:00
으로 설정됩니다. 다음 WHERE 절의 경우timestamp_column
이 테이블에서 TIMESTAMP 유형의 열이라고 가정합니다.WHERE timestamp_column BETWEEN '2025-04-30' AND '2025-04-31'
DATE 값이 암시적으로 형변환된 경우 WHERE 절은 다음과 같이 해석됩니다.
WHERE timestamp_column BETWEEN '2025-04-30 00:00:00' AND '2025-04-31 00:00:00'
이 WHERE 절을 사용하면 함수는 2025-04-31의 거의 모든
timestamp_column
값에 대해FALSE
를 반환하는데, 이는 의도하지 않은 결과일 수 있습니다. 이 특정 문제를 방지하려면 함수를 호출할 때upper_bound
에 그다음 날을 지정할 수 있습니다.WHERE timestamp_column BETWEEN '2025-04-30' AND '2025-05-01'
데이터 정렬 세부 정보¶
A BETWEEN X AND Y
식은 A >= X AND A <= Y
와 동일합니다. X
및 Y
비교에 사용되는 데이터 정렬은 독립적이며, 동일할 필요는 없지만 둘 다 A
의 데이터 정렬과 호환되어야 합니다.
예¶
다음은 숫자 및 문자열 값과 함께 BETWEEN을 사용하는 몇 가지 간단한 예입니다.
SELECT 'true' WHERE 1 BETWEEN 0 AND 10;
+--------+
| 'TRUE' |
|--------|
| true |
+--------+
SELECT 'true' WHERE 1.35 BETWEEN 1 AND 2;
+--------+
| 'TRUE' |
|--------|
| true |
+--------+
SELECT 'true' WHERE 'the' BETWEEN 'that' AND 'then';
+--------+
| 'TRUE' |
|--------|
| true |
+--------+
다음 예에서는 COLLATE와 BETWEEN을 함께 사용합니다.
SELECT 'm' BETWEEN COLLATE('A', 'lower') AND COLLATE('Z', 'lower');
+-------------------------------------------------------------+
| 'M' BETWEEN COLLATE('A', 'LOWER') AND COLLATE('Z', 'LOWER') |
|-------------------------------------------------------------|
| True |
+-------------------------------------------------------------+
SELECT COLLATE('m', 'upper') BETWEEN 'A' AND 'Z';
+-------------------------------------------+
| COLLATE('M', 'UPPER') BETWEEN 'A' AND 'Z' |
|-------------------------------------------|
| True |
+-------------------------------------------+