[Oracle] 형변환 함수

 

오라클에서는 동일한 자료 형에 대한 연산을 제공합니다. 연산을 위해서 자동으로 형을 변환해 주는 경우도 있으나, 명확한 결과를 위해서는 자동변환(암시적 형 변환, Implicit type conversion)을 이용하기 보다는 형변환후 사용하는 추천합니다.

 

자동 변환(암시적 형변환)의 예

SELECT  SAL, SAL + '777'
FROM EMP;

숫자형 데이터에 문자형 데이터 '777'을 더하면 오류가 날것 같지만, 자동변환을 통하여 연산되어 집니다.

 

명시적 형변환(Explicit type conversion)

명시적 형변환은 자동으로 자료형이 변환되는 방식이 아닌, 사용자가 직접 자료형을 변환하는 방식입니다. 명시적 형변환에 사용하는 함수는 아래와 같은 것들이 있습니다.

종료 설명
TO_CHAR 숫자 또는 날짜 데이터를 문자열 데이터로 변환
TO_NUMBER 문자열 데이터를 숫자 데이터로 변환
TO_DATE 문자열 데이터를 날짜 데이터로 변환

 

 

SQL Developer 질의 결과 내보내기

 
SQL Developer에서 질의 결과를 엘셀, csv, json 등으로 받아 재가공 하고 싶을때 익스포트 기능을 통하여 반출 할수 있습니다. 
 
SQL Developer [질의 결과] 탭에서 마으스 오른쪽 버튼을 클릭합니다.

 
보여지는 메뉴에서 [익스포트(E)]를 선택하면 '익스포트 마법사' 창이 보여 집니다.

 
내보낼 형식을 선택하기 위하여 [형식(F) | ▼ ] 부분을 클릭 합니다.

 
여러가지 형식중 내보낼 형식을 선택합니다 저는 'excel 2023+ (xlsx)'를 선택하였습니다.

 
[파일(F)] 을 통하여 익스포트 받을 파일의 위치 몇 파일명을 설정한후, 하단에 [다음(N)] 버튼을 클릭 합니다.

 
저장된 파일을 열어보면, 아래와 같은 결과를 확인해 보실 수 있습니다.

[Oracle] 날짜 함수 - 날짜의 버림 TRUNC 함수

날짜에 대한 버림시에는 숫자 데이터를 다룰 때와는 달리 버림의 기준이 될 포맷을 정의 합니다. 

ROUND ( 날짜 데이터, [반올림 기준 포맷] )

 

기준 포멧

기분포멧 기준단위
CC, SCC 네 자리 연도의 끝 두 자리 기준
(2016년이면 2050 이하이므로 반올림하면 2001년으로 처리)
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y 날짜 데이터의 해당 연/월/일의 7워 1일 기준
(2016년 7월 1일인 경우 2017년으로 처리)
IYY, IY, I ISO 8601에서 제정한 날짜 기준 연도 포맷을 기준
Q 각 분기의 두 분째 달의 16일 기준
MONTH, MON, MM, RM 각 달의 6일 기준
WW 해당 연도의 주(1~53번째 주) 기준
IW ISO 8601에서 제정한 날짜 기준 해당 년도의 주(week) 기준
W 해당 월의 주(1~5번째 주) 기준
DDD, DD, J 해당 일의 정오(12:.00:00) 기준
DAY, DY, D 한 주가 시작되는 날짜가 기준
HH, HH12, HH24 해당 일의 시간 기준
MI 해당 일 시간의 분 기준

 

SELECT  SYSDATE,
        TRUNC(SYSDATE, 'CC'),
        TRUNC(SYSDATE, 'YYYY'),
        TRUNC(SYSDATE, 'Q'),
        TRUNC(SYSDATE, 'DDD'),
        TRUNC(SYSDATE, 'HH')
FROM DUAL;

 

[Oracle] 날짜 함수 - 날짜를 반올림 하는 ROUND 함수

날짜에 대한 반올림시에는 숫자 데이터를 다룰 때와는 달리 반올림의 기준이 될 포맷을 정의 합니다. 

ROUND ( 날짜 데이터, [반올림 기준 포맷] )

 

기준 포멧

기분포멧 기준단위
CC, SCC 네 자리 연도의 끝 두 자리 기준(2016년이면 2050 이하이므로 반올림하면 2001년으로 처리)
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y 날짜 데이터의 해당 연/월/일의 7워 1일 기준(2016년 7월 1일인 경우 2017년으로 처리)
IYY, IY, I ISO 8601에서 제정한 날짜 기준 연도 포맷을 기준
Q 각 분기의 두 분째 달의 16일 기준
MONTH, MON, MM, RM 각 달의 6일 기준
WW 해당 연도의 주(1~53번째 주) 기준
IW ISO 8601에서 제정한 날짜 기준 해당 년도의 주(week) 기준
W 해당 월의 주(1~5번째 주) 기준
DDD, DD, J 해당 일의 정오(12:.00:00) 기준
DAY, DY, D 한 주가 시작되는 날짜가 기준
HH, HH12, HH24 해당 일의 시간 기준
MI 해당 일 시간의 분 기준

 

SELECT  SYSDATE,
        ROUND(SYSDATE, 'CC'),
        ROUND(SYSDATE, 'YYYY'),
        ROUND(SYSDATE, 'Q'),
        ROUND(SYSDATE, 'DDD'),
        ROUND(SYSDATE, 'HH')
FROM DUAL;

 

해당 월의 마지막 날을 구하는 함수 LAST_DAY

 

우리는 1월은 31일, 2월은 28일과 같이 매월 마지막 날을 알고 있습니다. 하지만, 2월은 29일인 경우도 있고, 특정월이 지정되지 않는다면 마지막 날이 몇일인지 구하는 것이 쉽지 않을 수도 있습니다. 이때 사용하는 함수가 LAST_DAY 함수 입니다.

 

LAST_DAY ( 날짜 데이터) 

LAST_DAY 함수는 날짜 데이터가 속한 달의 마지막 날을 리턴하는 함수 입니다. 이번달의 마지막 날은 몇일 인지 알아 보겠습니다.

SELECT SYSDATE,
        LAST_DAY(SYSDATE)
FROM DUAL;

 

+ Recent posts