본문 바로가기

database/oracle

7. oracle (단일행 함수, 숫자 함수, 날짜 함수, 변환함수)

 

숫자함수

 

ABS(숫자)

숫자의 절대값을 반환한다.

SQL>SELECT ABS(-10) FROM DUAL;

 

CEIL(소수점이 있는 수)

파라미터 값보다 같거나 가장 큰 정수를 반환(올림)

SQL>SELECT CEIL(3.1234) FROM DUAL;

SQL>SELECT CEIL(5.9999) FROM DUAL;

 

FLOOR(소수점이 있는 수)

파라미터 값보다 같거나 가장 작은 정수반환(내림)

SQL>SELECT FLOOR(3.2241) FROM DUAL;

SQL>SELECT FLOOR(2.888829) FROM DUAL;

 

ROUND(숫자,자리수)

숫자를 자리수+1 번째 위치에서 반올림한다.

SQL>SELECT ROUND(3.22645, 2) FROM DUAL;

SQL>SELECT ROUND(5.2345, 3) FROM DUAL;

 

MOD(숫자1 , 숫자2)

숫자1을 숫자2로 나눈 나머지를 리턴한다.

SQL>SELECT MOD(10,3) FROM DUAL;

 

TRUNC(숫자1, 자리수)

숫자1의 값을 소주점이하 자리수까지만 나타낸다. 나머지는 잘라낸다.

SQL>SELECT TRUNC(12.23532576 , 2) FROM DUAL;

SQL>SELECT TRUNC(34.1234) FROM DUAL;

 

 

날짜 함수

 

SYSDATE

현재 시간을 리턴한다.

SQL>SELECT SYSDATE FROM DUAL;

 

ADD_MONTHS( 날짜, 더해질월)

SQL>SELECT ADD_MONTHS(SYSDATE, 10) FROM DUAL;

 

LAST_DAY(날짜)

해당날짜에 해당하는 달의 마지막 날짜을 반환한다.

SQL>SELECT LAST_DAY(SYSDATE) FROM DUAL;

 

MONTHS_BETWEEN(날짜1, 날짜2)

두 날짜 사이의 월의 수

SQL>SELECT empno,MONTHS_BETWEEN(SYSDATE, HIREDATE) 근무개월 FROM emp ;

 

 

문자변환함수, 숫자변환함수, 날짜변환함수

 

TO_CHAR(데이터, '출력형식')

숫자 or 날짜 데이터를 문자형으로 변환

 

SQL>SELECT TO_CHAR(SYSDATE , 'YYYY-MM-DD') FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'YYYY:MM:DD') FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'YYYY.MM.DD') FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'YY.MM.DD') FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'YY" 년 "MM" 월 "DD" 일 "') FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'HH:MI:SS' ) FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'AM HH:MI:SS' ) FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'PM HH:MI:SS' ) FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'HH24:MI:SS' ) FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'HH24" 시 "MI" 분 "SS" 초 "' ) FROM DUAL;

SQL>SELECT TO_CHAR(SYSDATE , 'YY" 년 "MM" 월 "DD" 일 " HH24" 시 "MI" 분 "SS" 초 "') D FROM DUAL;

 

sql>SELECT TO_CHAR(SYSDATE, 'MM.DD day') FROM DUAL;

sql>SELECT TO_CHAR(SYSDATE, 'MM.DD dy') FROM DUAL;

sql>SELECT TO_CHAR(SYSDATE, 'MM.DD d') FROM DUAL;

 

ex) 현재 날짜는 2016년 11월 3일 목요일 오후 12:10 입니다.

sql> SELECT '현재 날짜는 ' || TO_CHAR(SYSDATE, 'YYYY"년 "MM"월 "DD"일" day AM HH:MI') || ' 입니다' FROM DUAL;

 

TO_NUMBER('숫자에 대응되는 문자');

SQL>SELECT TO_NUMBER('999') +1 FROM DUAL; 

 

TO_DATE('날짜에 대응되는 문자')

SQL>SELECT TO_DATE('2012-12-12') FROM DUAL;

 

TO_DATE( 문자열, 형식)

CREATE TABLE message( num NUMBER PRIMARY KEY, msg VARCHAR2(20), regdate DATE );

 

 

데이터 저장하기

 

sql>INSERT INTO message (num,msg,regdate) VALUES(1, ‘hi’, SYSDATE);

sql>INSERT INTO message VALUES(2, ‘hello’, ‘2016/10/20’);

sql>INSERT INTO message VALUES(2, ‘gura!’, TO_DATE(‘20161020123020’,’YYYYMMDDHHMISS’));

sql>INSERT INTO message VALUES(2, ‘gura!’, TO_DATE(‘20161020 오전 12:30’,’YYYYMMDD AM HH:MI’));

'database > oracle' 카테고리의 다른 글

9. oracle(JOIN)  (0) 2022.07.14
8. oracle (복수행 함수, GROUP BY, HAVING)  (0) 2022.07.14
6. oracle(단일행 함수,문자 함수)  (0) 2022.07.14
5. oracle (SPOOL, HOST)  (0) 2022.07.14
4. oracle (연산자)  (0) 2022.07.13