본문 바로가기

DB

Oracle DB 함수(TRIM,REPLACE),숫자함수(ABS, ROUND, TRUNC, CEIL)와 날짜함수들

[1] 공백제거 : TRIM(), LTRIM(), RTRIM()

     TRIM() : 앞뒤 공백제거
     LTRIM() : 왼쪽 공백제거
     RTRIM() : 오른쪽 공백제거

SELECT 
'   공   백   ',TRIM('   공   백   ') AS TRIM,     -- TRIM() : 앞뒤 공백제거
'   공   백   ',LTRIM('   공   백   ') AS LTRIM,   -- LTRIM() : 왼쪽 공백제거
'   공   백   ',RTRIM('   공   백   ') AS RTRIM    -- RTRIM() : 오른쪽 공백제거
FROM DUAL;

 

 

 

 

 

[2] 특정문자제거 : REPLACE()

     REPLACE('특정 값', '특정 값에서 제거할문자')

SELECT 
REPLACE('     안녕하세요! 반갑습니다.      ',' '), 
REPLACE('     ###안녕하세요!  ##  반갑습니다.###        ','#')
FROM DUAL;

 

 

 

 

 

[3] 절대값 ABS()

    ABS(숫자)

SELECT ABS(5) AS "절대값 5", ABS(-10) AS "절대값 -10" FROM DUAL;

 

 

 

 

 

 

[4] 반올림 ROUND()

     ROUND(숫자, 반올림할 자리수)

SELECT 
ROUND(2.3) AS "반올림 2.3",
ROUND(2.5) AS "반올림 2.5"
FROM DUAL;

SELECT 
ROUND(2.5678, 1) AS "소숫점1번째 자리까지 출력", -- 소숫점 1번째 자리까지 출력, 소숫점 2번째 자리에서 반올림
ROUND(2.5678,2)  AS "소숫점 2번째 자리까지 출력", -- 소숫점 2번째 자리까지 출력, 소숫점 3번째 자리에서 반올림
ROUND(1234.5678,-1) AS "일의 자리에서 반올림", -- 일의 자리에서 반올림
ROUND(1234.5678,-2) AS "십의 자리에서 반올림"  -- 십의 자리에서 반올림
FROM DUAL;

 

 

 

 

[5] 버림 TRUNC()

     TRUNC(숫자)

SELECT TRUNC(2.3) AS "버림 2.3", TRUNC(2.5) AS "버림 2.5" FROM DUAL;

 

 

 

 

 

[6] 나머지 MOD()

SELECT TRUNC(123/10) AS 몫,MOD(123,10) AS 나머지 FROM DUAL;

 

 

 

 

[7] 가까운 정수 찾기 : CEIL(본인보다 큰), FLOOR(본인보다 작은)

     CEIL(숫자), FLOOR(숫자)

SELECT 
CEIL(3.14), 
FLOOR(3.14),
CEIL(-3.14), 
FLOOR(-3.14)
FROM DUAL;

 

 

 

 

 

[8] SYSDATE : 현재시간

SELECT SYSDATE FROM DUAL;

 

 

 

[9] SYSDATE 양식 변경 (시간추가)

--시간형식
-- HH : 12시간 기준
-- HH24 : 24시간 기준
-- MI : 분
-- SS : 초
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';

 

 

 

[10] 개월 수 구하기 : MONTHS_BETWEEN()

      MONTHS_BETWEEN(날짜, 날짜)

      

SELECT CEIL(MONTHS_BETWEEN('2022/12/25','2022/03/11')) FROM DUAL;
--달 단위로 계산하기 때문에 결과값은 10

 

 

 

 

 

 

[11] 개월 수 더하기 : ADD_MONTHS()

      ADD_MONTH(날짜, 더할값)

SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;

 

 

 

 

 

[12] 다가올 요일에 해당하는 날짜 구하기 NEXT_DAY()

       NEXT_DAY(날짜, 요일);

SELECT NEXT_DAY(SYSDATE, '일요일') AS "돌아오는 일요일" FROM DUAL;

 

 

 

[13] 이번달, 특정달의 마지막 일 구하기 LAST_DAY()

SELECT LAST_DAY(SYSDATE) FROM DUAL; -- 이번 달
SELECT LAST_DAY('2022/07/21') FROM DUAL; -- 특정 달