1. DATE 타입
- 기본 날짜 타입: 년, 월, 일, 시, 분, 초 정보를 저장.
- 정밀도: 초 단위까지의 시간을 저장.
- 연산: 날짜 간의 덧셈 및 뺄셈 연산이 가능.
- 사용 형식: 컬럼명 DATE;
- 사용 예시:
SQL
CREATE TABLE TEMP07 (
COL1 DATE,
COL2 DATE,
COL3 DATE
);
-- SYSDATE: 시스템의 현재 날짜와 시간을 반환하는 함수
INSERT INTO TEMP07 VALUES (SYSDATE, SYSDATE - 7, SYSDATE + 7);
-- TO_DATE 함수를 사용하여 문자열을 DATE 타입으로 변환
INSERT INTO TEMP07 VALUES (
TO_DATE('20231101', 'YYYYMMDD'),
TO_DATE('20231101132517', 'YYYYMMDDHH24MISS'),
TO_DATE('2023-11-05', 'YYYY-MM-DD')
);
SELECT * FROM TEMP07;
-- TO_CHAR 함수를 사용하여 DATE 타입 데이터를 문자열로 변환
SELECT
TO_CHAR(COL1, 'YYYY-MM-DD HH24:MI:SS') AS "col1",
TO_CHAR(COL2, 'YYYY-MM-DD HH24:MI:SS') AS "col2",
TO_CHAR(COL3, 'YYYY-MM-DD HH24:MI:SS') AS "col3"
FROM TEMP07;
1 2. TIMESTAMP 타입
- 정밀한 시간 정보: 시간대(TIME ZONE) 정보와 10억분의 1초 단위의 정교한 시각 정보를 저장.
( 년, 월, 일, 시, 분, 초, 밀리초 ) - 종류:
- TIMESTAMP: 시간대 정보 없이 초 이하 9자리까지 표현.
- TIMESTAMP WITH LOCAL TIME ZONE: 현재 서버의 시간대에 따라 자동으로 날짜 정보를 변환. (시간대 정보는 저장되지 않으며, TIMESTAMP와 동일한 결과를 보여준다.)
- TIMESTAMP WITH TIME ZONE: 시간대 정보를 명시적으로 저장.
- 사용 예시:
SQL
CREATE TABLE TEMP08 (
COL1 DATE,
COL2 TIMESTAMP,
COL3 TIMESTAMP WITH LOCAL TIME ZONE,
COL4 TIMESTAMP WITH TIME ZONE
);
-- SYSTIMESTAMP: 시스템의 현재 날짜와 시간(TIMESTAMP)을 반환하는 함수
INSERT INTO TEMP08 (COL1, COL2, COL3, COL4)
VALUES (SYSDATE, SYSTIMESTAMP, SYSTIMESTAMP, SYSTIMESTAMP);
SELECT * FROM TEMP08;
3. 시간대(Time Zone) 관련 상세 설명
- TIMESTAMP WITH TIME ZONE:
- 이 타입은 시간대 정보 (TIME ZONE) 를 데이터와 함께 저장하므로, 전 세계적으로 분산된 데이터를 처리할 때 매우 유용.
- 시간대 정보는 데이터베이스 세션의 시간대와 독립적으로 저장됨.
- 데이터를 조회할 때, 데이터베이스 세션의 시간대에 맞게 자동으로 변환되어 표시됨.
- TIMESTAMP WITH LOCAL TIME ZONE:
- 이 타입은 데이터베이스 세션의 시간대 (TIME ZONE) 에 맞춰 데이터를 저장하고 표시.
- 데이터베이스에 저장될 때는 세션 시간대로 정규화되어 저장되지만, 조회 시에는 다시 세션 시간대로 변환되어 표시됨.
- 시간대 정보가 명시적으로 저장되지는 않지만, 세션 시간대에 따라 데이터가 변환된다는 점에서 TIMESTAMP 타입과 차이가 있다.
- 시간대 관련 주의사항:
- 시간대 정보를 올바르게 처리하기 위해서는 데이터베이스 세션의 시간대를 적절하게 설정해야 한다.
- 시간대 관련 함수 및 설정을 사용하여 시간대 변환 및 관리를 수행할 수 있다.
4. 날짜 형식(Date Format) 관련 추가 정보
- 날짜 형식 모델:
- 오라클은 다양한 날짜 형식 모델을 제공하며, TO_CHAR 및 TO_DATE 함수를 사용하여 날짜 데이터를 원하는 형식으로 변환할 수 있다.
- 일반적인 날짜 형식 모델 외에도, 특정 국가 또는 지역에서 사용되는 날짜 형식을 지원.
- NLS(National Language Support) 설정:
- 날짜 형식은 NLS 설정에 따라 달라질 수 있다.
- NLS 설정을 변경하여 날짜 형식, 요일 이름, 월 이름 등을 원하는 언어 및 지역에 맞게 설정할 수 있다.
5. 날짜 연산 관련 추가 정보
- INTERVAL 데이터 타입:
- 날짜 간의 간격을 나타내는 INTERVAL 데이터 타입을 사용하여 날짜 연산을 수행할 수 있다.
- INTERVAL YEAR TO MONTH 및 INTERVAL DAY TO SECOND 타입을 사용하여 연, 월 또는 일, 시, 분, 초 단위의 간격을 표현할 수 있다.
- 날짜 함수:
- 오라클은 날짜 연산을 위한 다양한 내장 함수를 제공한다. 예를 들어, ADD_MONTHS, MONTHS_BETWEEN, LAST_DAY 등의 함수를 사용하여 날짜를 조작하고 계산할 수 있다.
6. 추가적인 고려사항
- 성능:
- 날짜 데이터 타입 및 연산은 성능에 영향을 줄 수 있으므로, 인덱스 및 쿼리 최적화를 고려해야 한다.
- 호환성:
- 다른 데이터베이스 시스템 또는 애플리케이션과의 호환성을 고려하여 날짜 형식을 선택해야 한다.
'개발 > SQL' 카테고리의 다른 글
DDL (Data Definition Language) (0) | 2025.02.21 |
---|---|
Oracle 데이터 타입 - 이진데이터 (0) | 2025.02.21 |
Oracle 데이터 타입 - 숫자 (0) | 2025.02.21 |
Oracle 데이터 타입 - 문자열 (0) | 2025.02.21 |
Oracle 11g XE scott계정 생성하기 (0) | 2025.02.21 |