뇨내

[Oracle - SQL Developer] Date Time Function : 날짜 시간 함수 본문

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/24from dual;
 
-- 2시간전
select sysdate - (2/24from dual;
 
-- 30분 뒤
select sysdate + (30 / 24 / 60from 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

 

 

 

 

 

 

 

 


 

Comments