숫자함수
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 |