안녕하세요.!!!
데이터베이스 SQL 쿼리에서 기본 숫자, 날짜 관련 함수 정리한 내용입니다.
DECODE, ROUND, FLOOR, MOD, POWER 등 숫자 관련해서 반올림하거나 버림을 하거나 숫자를 표현하고자
할때 알맞게 사용하시면 좋습니다.
날짜 관련해서는 TO_CHAR(), TO_DATE() 함수를 이용하여 다양하게 날짜를 표시하는 방법 정리하였습니다.
1> 숫자 관련 함수
- DECODE 함수
컬럼 값이 값 n 에 일치하면 뒤의 결과를 반환
기본값이 없을 경우, Null로 반환
<Example>
DECODE(A,1,2,B)
-> A 가 1이면 2를 반환하고, 아니면 B를 반환한다.
- ROUND 함수
ROUND(M,N) : 해당 M값을 N자리 까지 반올림한다.
ROUND(M) : M값을 소수점 위로 반올림한다.
<Example>
ROUND(123.4267,3) -> 123.457
ROUND(123.5267) -> 124
ROUND(SUM(AMT)/1.5) -> AMT의 합계를 1.5로 나눈 값을 반올림한다.
- TRUNC 함수
TRUNC(M,N) : 해당 M값에서 N자리 미만을 절삭(버림)한다.
<Example>
TRUNC(123.4267,3) -> 123.456
TRUNC(123.5267) -> 123
TRUNC(SUM(AMT)/1.5) -> AMT의 합계를 1.5로 나눈 값을 절삭(버림)한다.
- MOD 함수
MOD(M,N) : 해당 M값에서 N자리 미만을 절삭(버림)한다.
<Example>
MOD(100,6) -> 4
MOD(123.5267) -> 123
MOD(SUM(AMT)/1.5) -> AMT의 합계를 1.5로 나눈 값을 절삭(버림)한다.
- POWER 함수
POWER(M,N) : 해당 M값에서 N승 계산한다.
<Example>
POWER(5,3) -> 125
- CEIL 함수
CEIL(M) : M보다 큰 가장 작은 정수 출력한다.
<Example>
CEIL(3.14) -> 4
- FLOOR 함수
FLOOR(M) : M보다 작은 가장 큰 정수 출력한다.
<Example>
FLOOR(3.14) -> 3
- ABS 함수
ABS(M) : M의 절대값을 출력한다.
<Example>
ABS(-3) -> 3
[종합 예문]
SELECT ROUND(3.14717,2), TRUNC(3.14717,2), MOD(100,6), POWER(5,3), CEIL(3.14), FLOOR(3.14), ABS(-3)
FROM DUAL;
[실행 결과]
2> 날짜 관련 함수
날짜 + 숫자 N ->해당 날짜에 N 일자를 더한 날짜
날짜 - 숫자 N ->해당 날짜에 N 일자를 뺀 날짜
날짜 + N/24 -> 해당 날짜에 N 시간을 더한 날짜
날짜 – 날짜 -> 두 날짜 간의 차이 (일수)
[Example]
SELECT SYSDATE "현재시간", SYSDATE+2/24 "현재시간+2시간"
FROM DUAL;
- 데이터 변환 함수
TO_CHAR : 날짜나 숫자를 문자형으로 변환
-> TO_CHAR(날짜, 출력형식), TO_CHAR(숫자, 출력형식)
TO_DATE : 데이터를 날짜형으로 변환
-> TO_DATE(문자, 변환형식)
TO_NUMBER : 데이터를 숫자로 해석
[Example]
SELECT
TO_CHAR(SYSDATE, 'YYYY/MM/DD') 날짜,
TO_CHAR(SYSDATE, 'YYYYMMDD') 날짜0,
TO_CHAR(SYSDATE, 'YYYY-MM-DD:HH24:MI') 날짜1,
TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') 날짜2,
TO_CHAR(SYSDATE, 'YYYY/MM/DD:HH:MI:SS AM') 날짜3,
TO_CHAR(SYSDATE, 'YYYY/MM/DD:HH:MI:SS PM') 날짜4,
TO_CHAR(SYSDATE, 'DY MON YY') 날짜5,
TO_CHAR(SYSDATE, 'DAY MONTH YYYY') 날짜6,
TO_CHAR(SYSDATE, '"금일은" YYYY" 년 "MM" 월 "DD" 일 입니다."') 날짜7
FROM DUAL;
<실행 결과>
추가로 DB 관련 쿼리 설명은 아래 내용 참고하시기 바랍니다.!!!!
[IT/Data] - SQL 쿼리 기본함수 정리 및 예시 (UPPER, CONCAT, INITCAP, SUBSTR)
감사합니다.
'IT ▶ > Database' 카테고리의 다른 글
[Database] 데이터베이스 테이블 제약조건 PK, FK, UK 개념 (2) | 2020.03.07 |
---|---|
[Database] 데이터베이스 테이블 생성 & 테이블 데이터타입 개념 (0) | 2020.03.06 |
[PL/SQL 기초] PL/SQL 이란? - 변수, 상수, %TYPE, 커서 (0) | 2020.02.19 |
[SQL PL] PL/SQL 변수제어, 흐름제어 (IF, LOOP, REPEAT) (0) | 2020.02.08 |
[PL/SQL 개념] 오라클 PL/SQL PROCEDURE (프로시저), FUNCTION 설명 (0) | 2020.01.11 |