Oracle 데이터 타입 - 날짜

2025. 2. 21. 02:24·개발/SQL

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
'개발/SQL' 카테고리의 다른 글
  • DDL (Data Definition Language)
  • Oracle 데이터 타입 - 이진데이터
  • Oracle 데이터 타입 - 숫자
  • Oracle 데이터 타입 - 문자열
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
Oracle 데이터 타입 - 날짜
상단으로

티스토리툴바