개발 수업/DB
[Oracle/SQL] SQL함수(날짜함수)
오늘 하루s
2023. 6. 9. 19:33
728x90
더보기
Day29-2. 230609
날짜함수
sysdate
현재일자와 시간을 DATE로 출력
1
2
|
select sysdate
from dual;
|
cs |
1
2
|
select sysdate, to_char(sysdate,'YYYY-MM-DD HH24:MI:SS DAY')
from dual;
|
cs |
to_char(sysdate,'YYYY-MM-DD HH24:MI:SS DAY') :
현재 날짜를 'YYYY-MM-DD HH24:MI:SS DAY'(2023-06-09 18:00:00 금요일)형태로 출력
LAST_DAY(date) , NEXT(date,char)
LAST_DAY(date) : date 날짜를 기준으로 해당 월의 마지막 일자를 반환
NEXT(date,char) : date를 char에 명시한 날짜로 다음 주 주중 일자 반환
1
2
3
4
5
|
select sysdate-1,sysdate, sysdate+1,
to_char(sysdate+(1/24),'YYYY-MM-DD HH24:MI'),
to_char(sysdate+((2/3)/24),'YYYY-MM-DD HH24:MI'),
to_char(sysdate+(40/(24*60)),'YYYY-MM-DD HH24:MI')
from dual;
|
cs |
sysdate-1 : 하루 전날의 날짜 , sysdate+1 : 다음날 날짜
to_char(sysdate+(1/24),'YYYY-MM-DD HH24:MI') : 한시간 뒤의 시간
to_char(sysdate+((2/3)/24),'YYYY-MM-DD HH24:MI'),
to_char(sysdate+(40/(24*60)),'YYYY-MM-DD HH24:MI') : 40분 뒤 시간
ADD_MONTHS(date, integer)
date로 부터 integer만큼의 월을 더한 날짜 반환
MONTHS_BETWEEN(date1, date2)
두 날짜 사이의 개월 수 반환. date2가 date1보다 빠른 날짜.
1
2
3
|
select months_between('2023/12/31',sysdate),
months_between(add_months(sysdate,6),sysdate)
from dual;
|
cs |
LAST_DAY(date) , NEXT(date,char)
LAST_DAY(date) : date 날짜를 기준으로 해당 월의 마지막 일자를 반환
NEXT(date,char) : date를 char에 명시한 날짜로 다음 주 주중 일자 반환
1
2
3
|
select last_day(sysdate),last_day('2023/02/01'),
next_day(sysdate,'토')
from dual;
|
cs |
EXTRACT(포맷 from 날짜)
날짜에서 데이터 출력
1
2
3
4
|
select sysdate, extract(YEAR FROM sysdate),
extract(MONTH FROM sysdate),
extract(DAY FROM sysdate)
from dual
|
cs |
1
2
3
4
|
select hiredate, extract(YEAR FROM hiredate),
extract(MONTH FROM hiredate),
extract(DAY FROM hiredate)
from EMP;
|
cs |
1
2
3
4
|
--입사한 달의 근무일수(토,일 포함)
select ename, hiredate, to_char((last_day(hiredate)-hiredate)*120000,'999,999,999') as 첫달급여
from emp
order by hiredate desc;
|
cs |
728x90