DATE 타입의 경우 날짜는 포함하지만 시간은 포함하지 않는다.
YYYY-MM-DD의 형식으로 입력이 가능하며 '1001-01-01' 부터 '9999-12-31' 까지만 입력이 가능하다.
DATETIME은 날짜와 시간을 표현하는데 사용된다.
YYYY-MM-DD HH:MM:SS의 형태로 사용되며
'1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력이 가능하다
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은 HH:MM:SS의 형태를 지닌다.(HHH:MM:SS의 형태를 띄기도 한다) -838:59:59 부터 838:59:59 까지의 범위를 가진다. 이때 TIME type의 시간이 크다고 느낄수도 있다. 하지만 TIME은 현재의 시간을 표현할때만 쓰는것이 아니라 이미 지나버린 시간이나, 특정 이벤트끼리의 간극을 표현하는데 사용되기 때문에 이처럼 쓰인다.