728x90
반응형
< 숫자 타입 함수들 >
TO_NUMBER(date) : 다른 타입 데이터를 숫자 타입으로 변환한다.
SELECT TO_NUMBER('1234567') FROM dual;
포맷을 사용해 형식이 있는 문자열도 쉽게 숫자 타입으로 변환할 수 있다.
SELECT TO_NUMBER('10,000', '999,999,999') FROM dual;
SELECT TO_NUMBER('123,000,000', '999,999,999') FROM dual;
SELECT TO_NUMBER('5,000₩', '999,999,999L') FROM dual;
ABS(n) : 절대값
SELECT ABS(-5) FROM dual;
FLOOR(n) : 내림
SELECT FLOOR(5.1) FROM dual;
CEIL(n) : 올림
SELECT CEIL(5.1) FROM dual;
ROUND(n, m) : 반올림, 자릿수 설정 가능
SELECT ROUND(5.55555) FROM dual;
SELECT ROUND(5.55555, 3) FROM dual;
MOD(n, m) : 나머지 연산
SELECT MOD(13, 10) FROM dual;
TRUNC(n, m) : 원하는 자리까지 자르기 (반올림 x)
SELECT TRUNC(123.1235555, 3) FROM dual;
< 문자 타입 함수들 >
TO_CHAR(data) : 전달한 데이터를 문자 타입으로 변환 (날짜도 가능)
SELECT TO_CHAR(1234) FROM dual;
숫자를 문자로 변환할 때도 형식을 사용할 수 있다.
SELECT TO_CHAR(5500, '9,999$') FROM dual;
SELECT TO_CHAR(5500, '9,999L') FROM dual;
날짜 타입을 문자로 변환하기
SELECT TO_CHAR(sysdate) FROM dual;
SELECT TO_CHAR(hire_date) FROM employees;
날짜 타입도 형식을 사용해 변환할 수 있다. (SimpleDateFormat과 다르므로 주의)
SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH:MI:SS') FROM dual;
SELECT TO_CHAR(hire_date, 'YYYY/MM/DD HH:MI:SS') FROM employees;
SUBSTR(문자, 시작위치, 문자개수) : 자른다
SELECT SUBSTR('Hello, Database', 5, 6) FROM dual;
SELECT SUBSTR('헬로우데이터베이스', 4, 3) FROM dual;
LTRIM(문자, 제거대상문자들) : 왼쪽의 제거 대상 문자들을 제거한다.
SELECT LTRIM('#############database#######', '#') FROM dual;
SELECT LTRIM('@@@@##@@###@####@database##@@', '@#') FROM dual;
RTRIM(문자, 제거대상문자들) : 오른쪽의 제거 대상 문자들을 제거한다.
SELECT RTRIM('#############database########', '#') FROM dual;
LPAD(문자, 원하는 길이, 채울 문자) : 왼쪽에 원하는 문자들을 채운다.
SELECT LPAD('COFFEE', 20, '<') FROM dual;
RPAD(문자, 원하는 길이, 채울 문자) : 오른쪽에 원하는 문자들을 채운다.
SELECT RPAD('TEA', 20, '>') FROM dual;
UPPER(문자) : 대문자
SELECT UPPER('hello') FROM dual;
LOWER(문자) : 소문자
SELECT LOWER(first_name||' '||last_name) FROM employees;
INITCAP(문자) : 첫 글자만 대문자로
SELECT INITCAP(email) FROM employees;
REPLACE(문자, old, new) : 교체
SELECT REPLACE('abc@naver.com', 'naver', 'google') FROM dual;
< 날짜 타입 함수들 >
TO_DATE(data) : 데이터를 날짜 타입으로 변환
SELECT TO_DATE('1998/11/25') FROM dual;
SELECT TO_DATE('1998-8-5') FROM dual;
형식을 지정해서 date타입으로 변환하는 것도 가능하다.
SELECT TO_DATE('1998+++10+++14', 'YYYY+++MM+++DD') FROM dual;
SELECT TO_DATE('1998+++10+++14, 13:40:55', 'YYYY+++MM+++DD, HH24:MI:SS') FROM dual;
TRUNC(dateType) : 원하는 단위로 날짜를 잘라서 사용할 수 있다.
SELECT TO_CHAR(TRUNC(sysdate, 'day'), 'YYYY/MM/DD, HH24:MI:SS') FROM dual; -- day 아래는 다 잘림 (시간)
SELECT TO_CHAR(TRUNC(sysdate, 'month'), 'YYYY/MM/DD, HH24:MI:SS') FROM dual; -- month 아래는 다 잘림 (날짜, 시간)
SELECT TO_CHAR(TRUNC(sysdate, 'year'), 'YYYY/MM/DD, HH24:MI:SS') FROM dual; -- year 아래는 다 잘림 (월, 날짜, 시간)
728x90
반응형
'DB > Oracle' 카테고리의 다른 글
Oracle DB 와 ojdbc, jdk 버전 관계 (2) | 2024.06.11 |
---|---|
[Oracle DB] 계정 관리하기 (0) | 2023.04.27 |
[Oracle DB] 시퀀스(Sequence) (0) | 2023.04.27 |
[Oracle DB] 트랜잭션(Transaction) (0) | 2023.04.27 |
[Oracle DB] 정규화(Normalization) (0) | 2023.04.27 |