MySQL 날짜와 시간(DATE, DATETIME, TIME, TIMESTAMP)

Songss·2024년 11월 29일

DBMS

목록 보기
2/20

1. DATE , DATETIME , TIME , TIMESTAMP

2. DATETIME VS TIMESTAMP


1. DATE

  • 설명: 날짜만 저장합니다.
  • 형식: YYYY-MM-DD (예: 2024-11-29)
  • 범위: 1000-01-01 ~ 9999-12-31
  • 특징: 시간 정보는 저장되지 않습니다.

예제:

CREATE TABLE example (
    event_date DATE
);

INSERT INTO example (event_date) VALUES ('2024-11-29');

2. DATETIME

  • 설명: 날짜와 시간을 모두 저장합니다.
  • 형식: YYYY-MM-DD HH:MM:SS (예: 2024-11-29 15:30:45)
  • 범위: 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
  • 특징:
    • 시간대(Timezone)에 의존하지 않습니다.
    • 날짜와 시간을 함께 관리해야 할 때 유용합니다.

예제:

sql
코드 복사
CREATE TABLE example (
    event_datetime DATETIME
);

INSERT INTO example (event_datetime) VALUES ('2024-11-29 15:30:45');

3. TIME

  • 설명: 시간만 저장합니다.
  • 형식: HH:MM:SS (예: 15:30:45)
  • 범위: 838:59:59 ~ 838:59:59
  • 특징:
    • 특정 시간, 기간(예: 2시간 30분) 또는 초 단위 데이터를 저장하는 데 유용합니다.
    • 음수 시간을 표현할 수 있습니다.

예제:

sql
코드 복사
CREATE TABLE example (
    duration TIME
);

INSERT INTO example (duration) VALUES ('15:30:45'), ('-02:30:00');

4. TIMESTAMP

  • 설명: 날짜와 시간을 모두 저장하며, 시간대를 반영합니다.
  • 형식: YYYY-MM-DD HH:MM:SS (예: 2024-11-29 15:30:45)
  • 범위: 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
  • 특징:
    • *시간대(Timezone)**를 기준으로 자동 변환합니다.
    • 데이터 삽입 시 기본값으로 현재 시간을 저장할 수 있습니다 (DEFAULT CURRENT_TIMESTAMP).

예제:

sql
코드 복사
CREATE TABLE example (
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO example () VALUES (); -- 현재 시간이 자동으로 삽입됩니다.

요약 표

속성저장 내용형식시간대 반영범위예시
DATE날짜YYYY-MM-DD1000-01-01 ~ 9999-12-312024-11-29
DATETIME날짜와 시간YYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:592024-11-29 15:30:45
TIME시간HH:MM:SS-838:59:59 ~ 838:59:5915:30:45 or -02:30:00
TIMESTAMP날짜와 시간(UTC 반영)YYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 ~ 2038-01-19 03:14:072024-11-29 15:30:45

SQL 개념 다 외웠어도 실제 사용하는거랑 다르다고 생각합니다.

연습 많이 해서 익숙해져 봅시다..

0개의 댓글