SQL-ORACLE/WHERE
[SQL] 날짜데이터로 조회하는 방법 2가지
이뮨01
2023. 7. 11. 13:41
날짜데이터로 값을 조회하는 방법을 배우다.
1. 날짜데이터 → 문자데이터
-- 날짜데이터로 조회하는 방법
-- TO_CHAR 을 활용한 방법
-- 문자데이터로 만들어서 비교 (편법)
SELECT *
FROM TB_PRD
WHERE TO_CHAR(REG_DT, 'YYYYMMDD') = '20230501'
OR TO_CHAR(REG_DT, 'YYYYMMDD') = '20230502';
출력하고싶은 것은 2023년 5월 1일 ~ 2023년 5월 2일 까지의 것들이다. 그것들의 REG_DT를 문자열로 형변환 한후 포매팅으로 YYYYMMDD로 연월일만 꺼내준다. 그 이유는 꺼낼 조건이 연월일만 있기 때문이다.
그것들의 연월일이 20230501 또는 20230502이면 조건에 충족한다.
2. 문자데이터 → 날짜데이터
-- 비교할 값을 날짜데이터로 만들어줌 (정석)
-- TO_DATE
SELECT *
FROM TB_PRD
WHERE REG_DT >= TO_DATE('20230501000000', 'YYYYMMDDHH24MISS')
AND REG_DT <= TO_DATE('20230502235959', 'YYYYMMDDHH24MISS');
날짜의 범위를 직접 문자열로 만들어서 그 문자열을 포매팅해서 날짜 데이터로 형변환하여 범위를 만들어서 사용한다.
쓰면서 BETWEEN을 사용해도 되나? 싶어서 사용해봤는데 오류가 뜬다.