hyeonga_code
Database_72_DATETIME 응용_INTERVAL 데이터 유형 본문
-- INTERVAL 데이터 유형
-- INTERVAL YEAR TO MONTH
-- YEAR/MONTH 필드의 연속된 부분 집합으로 구성됩니다.
-- INTERVAL DAY TO SECOND
-- DAY, HOUR, MINUTE, SECOND로 구성되는 필드의 연속된 부분 집합으로 구성됩니다.
-- WARRANTY 테이블을 생성합니다.
CREATE TABLE warranty (
prod_id CHAR(8),
warranty_time INTERVAL YEAR(3) TO MONTH);
/*
Table WARRANTY이(가) 생성되었습니다.
*/
DESC warranty;
/*
이름 널? 유형
------------- -- -------------------------
PROD_ID CHAR(8)
WARRANTY_TIME INTERVAL YEAR(3) TO MONTH
*/
-- 데이터를 삽입합니다.
INSERT INTO warranty
VALUES ('ABC-D001', INTERVAL '6' MONTH); -- 6개월을 의미합니다.
/*
1 행 이(가) 삽입되었습니다.
*/
INSERT INTO warranty
VALUES ('EFG-H325', INTERVAL '15' YEAR); -- 15년을 의미합니다.
/*
1 행 이(가) 삽입되었습니다.
*/
INSERT INTO warranty
VALUES ('JKL-M108', '5-6'); -- 5년 6개월을 의미합니다.
/*
1 행 이(가) 삽입되었습니다.
*/
-- 테이블을 조회합니다.
SELECT * FROM warranty;
-- 제품을 구매한 날로부터 WARRANTY_TIME 간격을 추가해야 서비스 기간을 알 수 있습니다.
-- 주문 제품별로 보증만료일을 출력합니다.
SELECT o.ord_no, o.prod_id, o.arrival_date, o.arrival_date + w.warranty_time AS 보증만료일
FROM orders o JOIN warranty w
ON ( o.prod_id=w.prod_id );
-- SALE_PERIOD 테이블을 생성합니다.
CREATE TABLE sale_period (
prod_id CHAR(8),
sale_time INTERVAL DAY(3) TO SECOND);
/*
Table SALE_PERIOD이(가) 생성되었습니다.
*/
-- 데이터를 삽입합니다.
INSERT INTO sale_period
VALUES ('ABC-D001', INTERVAL '15' DAY);
/*
1 행 이(가) 삽입되었습니다.
*/
INSERT INTO sale_period
VALUES ('EFG-H325', INTERVAL '7 12:00:00' DAY TO SECOND);
/*
1 행 이(가) 삽입되었습니다.
*/
INSERT INTO sale_period
VALUES ('JKL-M108', INTERVAL '12' HOUR);
/*
1 행 이(가) 삽입되었습니다.
*/
-- 상품별 세일 만료 일시를 조회합니다.
SELECT prod_id, systimestamp, systimestamp+sale_time
FROM sale_period;
'Oracle Database' 카테고리의 다른 글
Database_73_SQL FUNDAMENTALS_실습 (0) | 2023.08.25 |
---|---|
Database_72_DATETIME 응용_DATETIME 데이터 유형 SQL 함수 (0) | 2023.08.24 |
Database_72_DATETIME 응용_TIMESTAMP (0) | 2023.08.24 |
Database_72_DATETIME 응용_데이터베이스 기반, 사용자 세션 날짜 (0) | 2023.08.24 |
Database_71_정규화 표현식, 정규식 함수_REGEXP_LIKE, REGEXP_REPLACE, REGEXP_INSTR, REGEXP_SUBSTR, REGEXP_COUNT, META CHARACTER (0) | 2023.08.23 |