날짜 함수
SYSDATE 시스템 저장 현재 날짜를 반환
MOTHS_BETWEEN 두 날짜 사이의 개월수
ADD_MONTHS 특정 날짜의 개월수 더함
NEXT_DAT 특정날짜에서 최초로 도래하는 인자로 받은 요일의 날짜를 반환
LAST_DAY 해당달의 마지막 날짜
ROUND 인자로 받은 날짜를 특정 기준으로 반올림
TRUNC 인자로 받은 날짜를 특정 기준으로 잘라냄
현재 날짜
select sysdate
from DUAL;
날짜 연산(날짜 + 숫자),(날짜 - 숫자)
그 날짜로부터 숫자만큼 지난 날짜를 계산
select sysdate -1 어제,
sysdate 오늘,
sysdate+1 내일
from DUAL;
employee 테이블 사원의 근무일수 계산
select ename 사원명, round(sysdate-hiredate) 근무일수
from employee;
trunc 잘라낸다는 의미가 약간 다름 그 달의 첫째 일로 만듬
초기화 비슷하게 만듬 trunc(hiredate,'year') 80/12/17->80/01/01
select hiredate,
trunc(hiredate,'year')
from employee;
select hiredate,
trunc(hiredate,'month')
from employee;
months_between 날짜와 날짜 사이의 개월 수 계산
select ename,sysdate,hiredate,
months_between(sysdate,hiredate)--소수로 표시됨
from employee;
select ename,sysdate,hiredate,
trunc(months_between(sysdate,hiredate))
from employee;
add_months 개월 수를 더함
select ename,hiredate,
add_months(hiredate,6)
from employee;
최초로 오는 요일에 해당하는 날짜
select sysdate "현재 날짜",
next_day(sysdate,'토요일') "이번 토요일의 날짜"
from dual;
형변환 함수
to_char 날짜 혹은 숫자형을 문자형으로
to_date 문자형을 날짜형으로
to_number 문자형을 숫자형으로
select ename 사원명, hiredate 입사일,
to_char(hiredate,'YY-MM'),
to_char(hiredate,'YYYY/MM/DD DAY')
from employee;
한글을 사용하여 출력하는 방법
'YY-MM' >> 'YY"년"MM"월"'
select ename 사원명, hiredate 입사일,
to_char(hiredate,'YY"년" MM"월"'),
to_char(hiredate,'YYYY"년" MM"월" DD"일" DAY')
from employee;
NVL
NULL을 0이나 다른 값으로 변환
NVL(a,b) a 를 b로 바꿔서 출력(테이블 데이터에는 변함이 없음)
select ename,salary,commission,
nvl(commission,0),
salary*12+ nvl(commission,0)
from employee
order by job;
'SQL > ORACLE SQL' 카테고리의 다른 글
JOIN : 조인 (0) | 2022.11.03 |
---|---|
DECODE 와 CASE : 조건에 따른 값 (0) | 2022.11.02 |
ORACLE : 문자 처리 함수, 숫자 함수 (0) | 2022.11.02 |
정렬 : ORDER BY (0) | 2022.11.01 |
SELECT : 검색 LIKE 그리고 IS NULL (0) | 2022.11.01 |