[mysql] DATE, DATETIME, TIME, TIMESTAMP의 차이점

김주경·2020년 12월 8일
0

DATE

DATE 타입의 경우 날짜는 포함하지만 시간은 포함하지 않는다.
YYYY-MM-DD의 형식으로 입력이 가능하며 '1001-01-01' 부터 '9999-12-31' 까지만 입력이 가능하다.

DATETIME

DATETIME은 날짜와 시간을 표현하는데 사용된다.
YYYY-MM-DD HH:MM:SS의 형태로 사용되며
'1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력이 가능하다

TIMESTAMP

TIMESTAMP 역시 날짜와 시간을 포함한다.
TIMESTAMP는 1970-01-01 00:00:01 UTC 부터 2038-01-19 03:14:07UTC 까지가 그 범위이다. UTC가 붙어있는 것을 보면 알 수 있듯이 TIME_ZONE을 가지고 있다.
만일 DATETIME과 TIMESTAMP에서 동일하게 now()를 받는다면 현재 mysql에 설정되어있는
TIME_ZONE에 따라 입력값이 다르게 나타날 수 있다.

TIMESTAMP의 경우 null 값을 입력해도 현재 시간이 자동으로 입력된다.

TIME

TIME은 HH:MM:SS의 형태를 지닌다.(HHH:MM:SS의 형태를 띄기도 한다) -838:59:59 부터 838:59:59 까지의 범위를 가진다. 이때 TIME type의 시간이 크다고 느낄수도 있다. 하지만 TIME은 현재의 시간을 표현할때만 쓰는것이 아니라 이미 지나버린 시간이나, 특정 이벤트끼리의 간극을 표현하는데 사용되기 때문에 이처럼 쓰인다.

profile
안냐세온

0개의 댓글