SQL Server/실기 정리

SQL Server 26강 - 날짜/시간 데이터 형식별 저장 결과 비교 (DATE, TIME, DATETIME, DATETIME2)

코딩하는냥이 2025. 6. 2. 14:39
반응형

이번 글에서는 SQL Server에서 사용되는 주요 날짜 및 시간 관련 데이터 형식인 DATE, TIME, DATETIME, DATETIME2의 차이를 확인해 보았습니다.
각 형식이 저장하는 정보와 정밀도 차이를 비교함으로써, 용도에 맞는 형식을 선택하는 기준을 익히는 것이 목적입니다.


📌 예제 코드

-- [1] 날짜/시간 컬럼을 포함한 테이블 생성
CREATE TABLE date_table (
    JustDate DATE,              -- 날짜만 저장
    JustTime TIME,              -- 시간만 저장
    JustDateTime DATETIME,      -- 날짜 + 시간 (소수 초 단위 정밀도 제한)
    JustDateTime2 DATETIME2     -- 날짜 + 시간 (더 높은 정밀도)
);

-- [2] 현재 날짜 및 시간 저장
INSERT INTO date_table 
VALUES (SYSDATETIME(), SYSDATETIME(), SYSDATETIME(), SYSDATETIME());

-- [3] 결과 조회
SELECT * FROM date_table;

💻 실행 결과 예시

JustDate JustTime JustDateTime JustDateTime2
2025-05-28 31:45.1 31:45.1 31:45.1
  • JustDate: 날짜만 저장, 시간은 제외
  • JustTime: 시간만 저장, 날짜는 제외
  • JustDateTime: 날짜와 시간 저장, 소수 초는 최대 3자리
  • JustDateTime2: 날짜와 시간 저장, 소수 초는 최대 7자리

💬 코드 설명

  • SYSDATETIME(): 현재 날짜와 시간 반환 (고정밀도)
  • DATE: 날짜만 저장 (YYYY-MM-DD)
  • TIME: 시간만 저장 (HH:MM:SS.nnnnnnn)
  • DATETIME: 날짜 + 시간 저장, 소수 초 3자리 정밀도
  • DATETIME2: 날짜 + 시간 저장, 최대 7자리 정밀도

💡 포인트 정리

  • DATE: 날짜만 필요할 때 (생년월일 등)
  • TIME: 시간만 필요할 때 (예약 시간 등)
  • DATETIME: 일반적인 날짜 + 시간 저장용 (정밀도 낮음)
  • DATETIME2: 고정밀도 시간 기록이 필요한 경우 (로그, 트랜잭션 기록 등)
  • SYSDATETIME(): GETDATE()보다 더 정밀한 시간 제공

📌 정리하자면, 이번 강의에서는 DATE, TIME, DATETIME, DATETIME2의 차이를 직접 비교해 보며
데이터베이스에서 시간 정보를 어떻게 저장하고 활용할 수 있는지를 실습했습니다.
정밀도와 용도에 따라 형식을 적절히 선택하는 것이 성능과 정확도에 모두 중요합니다.