날짜형 데이터 타입
MySQL에서 날짜와 시간을 다루기 위한 데이터 타입이 이있다.
날짜형 데이터 타입
DATE
- 날짜 정보만을 저장하는 데이터 타입입니다.
- 형식: 'YYYY-MM-DD'
- 예제: '2023-11-27'
CREATE TABLE 예제테이블 (
id INT PRIMARY KEY,
이벤트_날짜 DATE
);
TIME
- 시간 정보만을 저장하는 데이터 타입입니다.
- 형식: 'HH:MM:SS'
- 예제: '14:30:00'
CREATE TABLE 예제테이블 (
id INT PRIMARY KEY,
시작_시간 TIME
);
DATETIME
- 날짜와 시간 정보를 모두 저장하는 데이터 타입입니다.
- 형식: 'YYYY-MM-DD HH:MM:SS'
- 예제: '2023-11-27 14:30:00'
CREATE TABLE 예제테이블 (
id INT PRIMARY KEY,
이벤트_일시 DATETIME
);
TIMESTAMP
- 날짜와 시간 정보를 저장하며, 자동으로 업데이트되는 타임스탬프입니다.
- 형식: 'YYYY-MM-DD HH:MM:SS'
- 예제: '2023-11-27 14:30:00'
CREATE TABLE 예제테이블 (
id INT PRIMARY KEY,
생성_시간 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
YEAR
- 연도 정보만을 저장하는 데이터 타입입니다.
- 형식: 'YYYY'
- 예제: '2023'
CREATE TABLE 예제테이블 (
id INT PRIMARY KEY,
연도_정보 YEAR
);
TIMESTAMP VS DATETIME
TIMESTAMP | DATETIME | |
---|---|---|
타입 | 숫자형 | 문자형 |
용량 | 4byte | 8byte |
입력 | Default Insert (AUTO) | 명시적 INSERT |
형식 | 1970~01-01 ~ 2038-01-19 (UTC) | 1000-00-00 ~ 9999-99-99 |
TIMESTAMP는 시간을 UTC로 저장되기 때문에 TIME ZONE에 맞는 시간으로 저장된 시간을 볼 수 잇다.
예를 들어 한국에서 2023년 11월 9일 10시에 저장된 데이터가 있을 때, 한국보다 5시간 느린 나라에서 이 데이터를 요청하면 저장된 시간이 해당 나라의 timezone이 적용되어 5시로 표시된다.
그래서 TIMESTAMP와 DATETIME이 서로 다르게 표시될 수 있다.
하지만 TIMESTAMP는 2038-01-19 까지만 저장할 수 없다는 문제가 잇다.
https://en.wikipedia.org/wiki/Year_2038_problem