날짜 함수입문
TO_CHAR
날짜나 숫자를 지정한 형식의 문자열로 바꾸는 함수
정의
TO_CHAR(값, 포맷) 형식. 예: TO_CHAR(hire_date, 'YYYY-MM-DD') → '2025-03-15'. 포맷은 YYYY(연), MM(월), DD(일), HH24(24시간) 등을 조합해서 만든다. 화면에 날짜를 예쁘게 표시할 때 가장 많이 쓴다.
왜 중요한가?
날짜를 보기 좋게 가공할 때 일상적으로 쓰지만, WHERE 조건에 쓰면 안 된다. WHERE TO_CHAR(date_col, 'YYYY') = '2025' 대신 WHERE date_col >= DATE '2025-01-01' AND date_col < DATE '2026-01-01' 처럼 범위 비교로 써야 검색이 빠르다.
틀리기 쉬운 포인트
예시
-- 표시용 SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees; -- 올바른 WHERE SELECT * FROM employees WHERE hire_date >= DATE '2025-01-01' AND hire_date < DATE '2026-01-01';
성능 포인트
!날짜 인덱스 컬럼을 TO_CHAR로 감싸면 인덱스가 막힌다. 범위 비교로 변형하라.