일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- python 개발환경
- Spring Security
- ORACLE CLOUD
- Gradle
- hikaricp
- log4j profile
- catalina log
- template
- git
- ubuntu
- intellij
- bitbucket
- mybatis
- datasource
- github
- springboot
- log4j2
- Spring
- Linux
- MySQL
- between 날짜
- Java
- 배열스트링
- 라즈베리파이
- oracle
- STS
- Spring Boot
- oracle between
- between date
- hikari
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- python 개발환경
- Spring Security
- ORACLE CLOUD
- Gradle
- hikaricp
- log4j profile
- catalina log
- template
- git
- ubuntu
- intellij
- bitbucket
- mybatis
- datasource
- github
- springboot
- log4j2
- Spring
- Linux
- MySQL
- between 날짜
- Java
- 배열스트링
- 라즈베리파이
- oracle
- STS
- Spring Boot
- oracle between
- between date
- hikari
Archives
- Today
- Total
파워노트
범위 검색 비교 연산자 보다는 BETWEEN ~ AND 사용하기 본문
반응형
BETWEEN
- BETWEEN연산자를 사용하면 테스트할 범위를 지정할 수 있습니다 .
- 연산자를 사용하여 BETWEEN 문에서 반환된 행에 대한 검색 조건을 구성하면 SELECT값이 지정된 범위에 있는 행만 반환됩니다.
- 다음은 BETWEEN 연산자 의 구문을 보여줍니다 .
expression [ NOT ] BETWEEN low AND high
- 해당구문은 아래와 같음을 의미 한다.
value >= low AND value <= high
between 예제 - 사이 숫자값
- 다음 구문은 비용이 500에서 600 사이인 제품을 반환합니다.
SELECT
product_name,
standard_cost
FROM
products
WHERE
standard_cost BETWEEN 500 AND 600
ORDER BY
standard_cost;
- standard_cost 열이 500~600 범위를 비교 하여 해당범위 제품만을 반환했습니다.
between 예제 - 사이 숫자값이 아닌경우
- 다음 구문은 비용이 500에서 600 사이인 제품이 아닌경우만을 반환 합니다 .
SELECT
product_name,
standard_cost
FROM
products
WHERE
standard_cost NOT BETWEEN 500 AND 600
ORDER BY
product_name;
- standard_cost 열이 500~600 가 아닌 제품을 반환
between 예제 - 날짜값 비교 ( X )
- 주문일이 2016-12-01 과 2016-12-31 사이의 주문값만을 반환 합니다 .
SELECT
order_id,
customer_id,
status,
order_date
FROM
orders
WHERE
order_date BETWEEN TO_DATE( '2016-12-01', 'YYYY-MM-DD' ) AND TO_DATE( '2016-12-31', 'YYYY-MM-DD' )
ORDER BY
order_date;
- 결과는 다음과 같습니다.
between 예제 - 날짜값 비교 ( 시간값 포함 )
- 날짜 비교시에는 주의 사항이 있다 .
- 2016-12-10 과 2016-12-02 날짜로 비교 조회시 2016-12-02 일 날짜의 정보를 반환하지 못한다 .
SELECT
order_id,
customer_id,
status,
order_date
FROM
orders
WHERE
order_date BETWEEN TO_DATE( '2016-12-01', 'YYYY-MM-DD' ) AND TO_DATE( '2016-12-02', 'YYYY-MM-DD' )
ORDER BY
order_date;
- 아래와 같이 2016-12-02일 날짜가 반환되지 않았다.. 의도 하지 않은 결과이다.
SELECT
order_id,
customer_id,
status,
order_date
FROM
orders
WHERE
order_date BETWEEN TO_DATE( '2016-12-01', 'YYYY-MM-DD' )
AND TO_DATE( '2016-12-02', 'YYYY-MM-DD' ) + 0.99999
ORDER BY
order_date;
- 2016-12-02 날짜를 포함한 내용을 처리 하고 싶다면 해당 날짜의 23:59:59 초 나타내야 한다.
- 또는 0.99999 를 더하여 2016-12-02 23:59:59 초가 되도록 한다.\
- 날짜 비교의 경우 DATE type의 경우 기본적으로 시분초를 포함하는 데이터이므로
- 2016-12-01 00:00:00 ~ 2016-12-02:00:00:00 의 데이터를 처리한다. 그러므로 2016-12-02 일의 데이터를 포함시키고자 한다면 2016-12-02 23:59:59 초의 데이터와 비교 처리 해야 한다.
반응형
'oracle' 카테고리의 다른 글
[ 오라클 팁 ] 콤마로 나열된 배열 스트링에서 단어 찾기. feature REGEXP_LIKE (0) | 2022.10.28 |
---|---|
[ 오라클 팁 ] 오라클 테이블 복사하기. (0) | 2022.09.26 |
oracle 테이블 정보, 컬럼 정보, 인덱스 정보, 코멘트 정보, 시노님 정보 조회 (0) | 2022.09.26 |
[TIP] Oracle CHAR(8) 은 고정자리수 .. '0' 이 아니라 '0 ' 이였다. (0) | 2022.03.17 |
[tip] 여러개의 row colum을 하나의 row 로 처리. (0) | 2022.02.18 |
Comments