Oracle/Function
[Oracle - SQL Developer] Date Time Function : 날짜 시간 함수
삐옥
2021. 11. 14. 12:15
Date Time Function 날짜 시간 함수
+, -
1. 시각 - 시각 = 일
2. 시각 + 시간(일) = 시각
3. 시각 - 시간(일) = 시각
- 현재 시스템의 시간을 반환
- date sysdate
1
2
3
4
|
select sysdate from dual; -- 21/11/14 => 2021-11-14 00:00:00
-- 날짜 형식 변경! 툴을 따라감 시분초가 첨에 안보이는건 그냥 안보여주는것 원래 포함됨!
select name, join from tblCompany;
|
cs |
예시 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
--현재시각 - 탄생일
select
name,
ibsadate,
round(sysdate - birth) as "탄생 후 일수",
round((sysdate - birth) / 365) as "탄생 후 년수" -- 윤년의 경우는 제외시킴 + 사용 금지
round((sysdate - birth) * 24) as "탄생 후 시수",
round((sysdate - birth) * 24 * 60) as "탄생 후 분수",
round((sysdate - birth) * 24 * 60 * 60 ) as "탄생 후 초수"
from tblMember;
select
title,
adddate,
completedate,
round(completedate - adddate)
from tblShopping
where (completedate - adddate) < 3
order by (completedate - adddate) asc;
select sysdate, sysdate + 100 from dual; -- 100일 뒤
select sysdate, sysdate - 100 from dual; -- 100일 전
-- 1시간뒤
select sysdate + (1/24) from dual;
-- 2시간전
select sysdate - (2/24) from dual;
-- 30분 뒤
select sysdate + (30 / 24 / 60) from dual;
|
cs |
LAST_DAY()
- date last_day(date)
- 해당 컬럼값이 포함된 달의 마지막 날짜
MONTHS_BETWEEN()
- number months_between(date, date)
- 시각 - 시각 = 월
ADD_MONTHS()
- date add_months(date, number)
- 시각 + 시간(월) = 시각
예시 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
select
name,
round(sysdate - join) as "근무시간(일)",
round((sysdate - join) / 30) as "근무시간(월)", -- 오차범위 심함 사용X
round(months_between(sysdate, join)) as "근무시간(월)", -- 정확한 시간
round(months_between(sysdate, join) / 12) as "근무시간(년)" -- 정확한 시간
from tblCompany;
select
sysdate,
sysdate + 100,
sysdate - 100,
add_months(sysdate, 1), -- 한달 뒤
add_months(sysdate, -1), -- 한달 전
add_months(sysdate, 1 * 12),
add_months(sysdate, -3 * 12)
from dual;
|
cs |