DB/SQL

[Oracle] 날짜 및 형식 변환(TO_CHAR)

토킹포테토 2023. 5. 3. 11:29
728x90

* T0_CHAR(날짜 데이터 타입, '지정형식')

: 날짜, 숫자 , 문자 값을 지정한 형식의 VARCHAR2 타입 문자열로 반환하는 함수.

 

SYSDATE = 2023-05-03(수)

지정형식 설명 EX 결과
CC 세기   SELECT TO_CHAR(SYSDATE, 'CC') FROM DUAL; 21
YYYY or YYY or YY or Y 연도  SELECT TO_CHAR(SYSDATE, 'YYYY') FROM DUAL; 2023
YEAR
문자로 표혐된 연도   SELECT TO_CHAR(SYSDATE, 'YEAR') FROM DUAL; TWENTY TWENTY-THREE
Q 분기 SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL; 2
MM 두 자리 값 월   SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL; 5
MONTH 공백 추가한 월  SELECT TO_CHAR(SYSDATE, 'MONTH') FROM DUAL; 5월
WW
연, 월의 주 SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;
18 
1 (5월 1주차)
DDD or DD or D
연, 월, 주의 일 SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;
123
03
4 ->일요일 1, 월요일 2 ,화요일 3 , 수요일 4
DAY
요일 이름 SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL; 수요일

 

*예제 ) 오늘을 기준으로 해당 주(WEEK)의 모든 일자 조회

select to_char(A.DATES, 'yyyy-mm-dd')   monday
     , to_char(A.DATE+1, 'yyyy-mm-dd')  tuesday
     , to_char(A.DATE+2, 'yyyy-mm-dd')  wednesday
     , to_char(A.DATE+3, 'yyyy-mm-dd')  thursday
     , to_char(A.DATE+4, 'yyyy-mm-dd')  friday
     , to_char(A.DATE+5, 'yyyy-mm-dd')  saturday
     , to_char(A.DATE+6, 'yyyy-mm-dd')  sunday
  from (
 	 select 
     	sysdate - (to_number(to_char(sysdate,'d'))-2) AS DATES
     from dual
       ) A