<p class="coding">/SQL
[SQL/ORACLE] TO_CHAR(DATE, 'MM') = '01' 날짜 함수
daisy26
2023. 8. 21. 23:49
오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다.
https://school.programmers.co.kr/learn/courses/30/lessons/144855
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.
라는 문제가 있다면, 2022년 1월에 해당하는 부분을 조건문으로 쿼리 작성해야 한다. 날짜 형식에서 필요한 문자열을 추출할 때 TO_CAHR을 사용한다.
날짜 포맷 변경 (YYYY-MM-DD)
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') --20200723
, TO_CHAR(SYSDATE, 'YYYY/MM/DD') --2020/07/23
, TO_CHAR(SYSDATE, 'YYYY-MM-DD') --2020-07-23
, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') --2020-07-23 11:10:52
FROM dual
형식
YYYY | 년 | MM | 월 |
DD | 일 | ||
HH24 | 24시간 | HH | 12시간 |
MI | 분 | SS | 초 |
소수점 변경
SELECT TO_CHAR(123.456, 'FM990.999') --123.456
, TO_CHAR(1234.56, 'FM9990.99') --1234.56
, TO_CHAR(0.12345, 'FM9990.99') --0.12
FROM dual
FM: 문자열의 공백제거
숫자의 최대 길이만큼 9999... 형식을 지정한다. (9 : 값이 없으면 표시안함, 0: 값이 없으면 "0"으로 처리)
정수은 지정한 형식보다 값의 길이가 길면 오류, 소수 지정한 길이보다 길면 반올림
숫자의 천 단위 콤마 찍기
SELECT TO_CHAR(123467, 'FM999,999') --123,467
, TO_CHAR(123467890, 'FM999,999,999') --123,467,890
, TO_CHAR(123467, 'FML999,999') --₩123,467
FROM dual
지정한 길이 만큼 "0"으로 채우기
SELECT TO_CHAR(123) --123
, TO_CHAR(123, 'FM00000') --00123
FROM dual
날짜의 "0" 없애기
SELECT TO_CHAR(SYSDATE, 'MM/DD') --07/03
, TO_CHAR(SYSDATE, 'FMMM/DD') --7/3
FROM dual
임의의 구분자로 날짜 형식 만들기
SELECT TO_CHAR(SYSDATE, '""YYYY"년 "MM"월 "DD"일"') --2020년 07월 23일
, TO_CHAR(SYSDATE, '""HH24"시 "MI"분 "SS"초"') --11시 12분 20초
FROM dual
시간의 오전, 오후 값 반환
SELECT TO_CHAR(SYSDATE, 'AM') --오전
, TO_CHAR(SYSDATE, 'AM HH:MI:SS') --오전 11:44:31
, TO_CHAR(SYSDATE, 'YYYY-MM-DD AMHH:MI:SS') --2020-07-23 오전11:44:31
FROM dual
오라클 언어 설정에 따라서 오전, 오후 또는 AM, PM으로 반환됨
날짜의 요일 반환
SELECT TO_CHAR(SYSDATE, 'D') --5 : 1(일)~7(토)
, TO_CHAR(SYSDATE, 'DY') --목
, TO_CHAR(SYSDATE, 'DAY') --목요일
FROM dual
1년기준 몇일, 몇주, 분기 반환
SELECT TO_CHAR(SYSDATE, 'DDD') --365일 기준 205일
, TO_CHAR(SYSDATE, 'WW') --1년 기준 30주
, TO_CHAR(SYSDATE, 'Q') --3분기
FROM dual
간편한 날짜 변환
SELECT TO_CHAR(SYSDATE, 'MON') --7월
, TO_CHAR(SYSDATE, 'DL') --2020년 7월 23일 목요일
FROM dual
[Reference]
[Oracle] 오라클 TO_CHAR 함수 사용법 완벽한 정리 (날짜포맷, 소수점, 천단위 콤마)
오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다. 자주 사용하는 기본 함수이므로 아래의 다양한 변환 방법을 알고 있으면 많은 도움이 된다.
gent.tistory.com