2024. 1. 13. 13:43ㆍ· LANGUAGE/└ Database
환경 : DBeaver
날짜 데이터는 date / timestampe 형태를 사용한다.
DATE |
date 형태로 시간 데이터를 관리 |
BC 4712년 1월 1일부터 9999년 12월 31일까지 표현 가능 |
|
연, 월, 일, 시, 분, 초 까지 입력 가능 | |
java.sql.Date 클래스와 date 형태가 호환 됨 | |
TIMESTAMP |
연도, 월, 일, 시, 분, 초 + 밀리초까지 입력 가능 |
java.sql.Timestamp 클래스와 timestamp 형태가 호환 됨 |
- Oracle에서 변환 명령은 to_date(값, 형식)를 사용한다.
- 변환 형식은
Y(연도), M(월), D(일), HH/HH24(시간), MI(분), S(초)
- 현재 시각을 구하고 싶을 땐 sysdate / systimestamp 를 사용하여 구한다.
- 날짜는 더하기 빼기가 가능하다. (단위 : 일)
(참고) 이 글에서 사용될 테이블과 시퀀스 생성 구문입니다.
-- Create sequence and table
CREATE SEQUENCE project_seq;
CREATE TABLE project(
project_id NUMBER PRIMARY KEY,
project_name VARCHAR2(100) NOT NULL,
project_budget NUMBER NOT NULL,
project_start_date DATE NOT NULL, -- 날짜 데이터 삽입
project_end_date DATE NOT NULL -- 날짜 데이터 삽입
);
(+) 날짜를 삽입할 땐 DATE 타입으로 선언해줘야 합니다.
데이터 삽입
-- Insert data
INSERT INTO project(project_id, project_name, project_budget, project_start_date, project_end_date)
VALUES (project_seq.nextval, 'Environmentally Friendly City Development', 5000000, '2024-03-01', '2024-12-31');
(+) '2024-03-01' 과 같이 문자열 형태로 입력해도 들어가긴 한다.
[ to_date() ]
INSERT INTO project(project_id, project_name, project_budget, project_start_date, project_end_date)
VALUES (project_seq.nextval, 'Education Software Development', 800000, to_date('2024-04-01', 'YYYY-MM-DD'), to_date('2024-08-31', 'YYYY-MM-DD'));
INSERT INTO project(project_id, project_name, project_budget, project_start_date, project_end_date)
VALUES (project_seq.nextval, 'Health Promotion Campaign', 300000,
to_date('2024-05-15 12:00:00', 'YYYY-MM-DD HH24:MI:SS'),
to_date('2024-06-30 18:00:00', 'YYYY-MM-DD HH24:MI:SS'));
(+) to_date(값, 형식) 를 활용한다.
바꾸고자 하는 날짜, 시간을 입력하고 그에 맞는 형식을 부여한다.
(+) 마감 일을 표현하고자 할 때 자주 사용된다. 그 때에는 대부분 분 / 초를 59:59 형태로 입력한다.
[현재 시간 불러오기] [덧셈 해보기]
INSERT INTO project(project_id, project_name, project_budget, project_start_date, project_end_date)
VALUES (project_seq.nextval, 'Decadal Technology Research', 2000000,
sysdate, -- Current timestamp
sysdate+30);
(+) sysdate를 활용하여 현재 시각을 불러올 수 있다.
(+) sysdate+30을 통하여 현재 날짜를 기준으로 30일 후를 출력할 수 있다.
[ 결과 확인 ]
(참고) 해당 글에서 사용한 테이블 및 시퀀스 삭제 구문입니다.
-- Drop sequence and table
DROP SEQUENCE project_seq;
DROP TABLE project;
개인 공부 기록용입니다:)
'· LANGUAGE > └ Database' 카테고리의 다른 글
[ DB / Oracle ] 데이터 조회 (SELECT) (1) | 2024.01.14 |
---|---|
[ DB / Oracle ] sql 실습 (1) | 2024.01.13 |
[ DB / Oracle ] 시퀀스 옵션 'NOCACHE' (0) | 2024.01.12 |
[ DB / Oracle ] 시퀀스(SEQUENCE) (0) | 2024.01.11 |
[ DB / Oracle ] 기본키와 기본값 설정 (Primary key / default) (0) | 2024.01.10 |