공부를 하다가 보니 table을 생성할 때, datatype으로
'interval year(3) to month'
'interval day(3) to second'
라고 선언해서 사용하는 것을 보고 이번 포스팅을 하게 되었습니다.
1
2
3
4
5
|
create table cc(
today date,
year1 interval year(3) to month,
day1 interval day(3) to second
);
|
cs |
위처럼 cc 라는 table을 생성하였습니다.
변수이름 : year1 - 데이터타입 : interval year(3) to month
에는 실제 데이터를 insert할때
interval '개월간격' to month(3)
interval '연간격' to year(3)
를 넣을 수 있습니다.
변수이름 : day1 - 데이터타입 : interval day(3) to second
에는 실제 데이터를 insert할때
interval '초간격' to second(3)
interval '분간격' to minute(3)
interval '시간간격' to hour(3)
interval '일간격' to day(3)
를 넣을 수 있습니다.
1
2
3
4
5
6
|
insert into cc
values(sysdate, interval '12' month(3), interval '60' second(3));
insert into cc
values(sysdate, interval '24' month(3), interval '120' second(3));
insert into cc
values(sysdate, interval '36' month(3), interval '240' second(3));
|
cs |
첫번째 insert를 보면,
today 에는 현재 날짜와시간을 담고있는 sysdate를
year1 에는 interval '12' month(3) 를
day1 에는 interval '60' second(3)를
넣어 insert하였습니다.
interval '12' month(3) 에서 '12'는 간격을 12달로 하겠다는 것을 의미합니다. 그리고 month() 안에 숫자 3은 정확도를 나타낸다고 하는데..잘 모르겠습니다.ㅎㅎ
알려주시면 수정하겠습니다.
interval '60' second(3) 에서 '60'은 간격을 60초로 하겠다는 것을 의미합니다.
1
|
select * from cc;
|
cs |
그래서 위처럼 select 문을 적고 명령문 실행(Ctrl+Enter)를 하게되면

위 처럼 조회를 하게되면 cc 테이블에 데이터가 저장된 것을 볼 수 있습니다.
1
2
3
4
|
select to_char(today,'yyyy-MM-DD HH24:MI:SS') "char_(today)",
to_char(today+year1,'yyyy-MM-DD HH24:MI:SS') "char_(today + year01)",
to_char(today+day1,'yyyy-MM-DD HH24:MI:SS') "char_(today+day01)"
from cc;
|
cs |
이 데이터를 위처럼 select하여 조회하여 활용할 수 있습니다. 위의 select 문을 명령문 실행(Ctrl+Enter)를 하면

위 처럼 결과가 나옵니다. 첫번째 행(row)은 year1에 12달 간격을 갖고 있고 day1에는 60초 간격을 갖고 있습니다.
그래서 today+year1을 하게되면 2021년 3월 28일에서 12달을 더한 2022년 3월 28일을 보여줍니다.
또한, today+day1을 하게되면 15시57분16초에서 60초를 더한 15시58분15초를 보여줍니다.
즉, 이렇게 interval을 활용하였을 때 각 행(row)마다 다른 간격을 갖도록 하여 계산할 수 있게 됩니다.
어떻게 활용할지 아직 생각해보지 않았지만 이후 프로젝트에서 활용하게 된다면 어떤식으로 활용하였는지 공유드리도록 하겠습니다.
'ORACLE SQL' 카테고리의 다른 글
[ORACLE] SQL - 프로시저 (매개변수가 1개인 경우, 2개인 경우) (0) | 2021.03.21 |
---|---|
[ORACLE] SQL - 스토어드 프로시저(Procedure) (0) | 2021.03.21 |
[ORACLE] SQL 반복문 - FOR문, WHILE문[ORACLE] SQL 반복문 - FOR문, WHILE문 (0) | 2021.03.21 |
[ORACLE] SQL -- if문 예시 (0) | 2021.03.21 |
[ORACLE] SQL - TYPE의 is record 활용하기 (0) | 2021.03.21 |