Database

날짜 타입, Timestamp와 Datetime의 차이 알아보기

didue 2021. 12. 27. 21:40
반응형

 

업무단에서 너무나도 당연스럽게 날짜 타입을 사용할 때는 Timestamp을 사용해 왔다.

늦은감이 있지만 왜 일까? 무슨 차이가 있길래 Timestamp를 써야하는가 싶어 정리해보았다.

 

 


 

날짜형 데이터 타입

(mariaDB 기준)

1) TIME

시간을 표시하는 데이터 타입. HH:MM:SS(또는 HHH:MM:SS)형의 출력을 나타낸다.

TIME은 현재 시간 뿐만 아니라 과거 시간이나, 특정 이벤트끼리의 간극을 표현하는데 사용되기도 한다.

 

2) DATE

날짜를 표시하는 데이터타입. 시간을 포함하지 않는다.

YYYY-MM-DD형으로 입출력하며, '1001-01-01' 부터 '9999-12-31'까지 입력이 가능하다.

 

3) DATETIME

날짜와 시간을 포함하는 데이터 타입.

YYYY-MM-DD HH:MM:SS의 형태로 사용되며, '1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력.

 

4) TIMESTAMP

날짜와 시간을 포함하는 데이터 타입.

YYYY-MM-DD HH:MM:SS(.FFFFFF)의 형태 사용, Date보다 정밀한 시간을 요구할 때 사용한다.

시스템의 프로세스 시간, 우선순위를 정하거나 ms(밀리세컨드) 이하까지 표현하기 위해 사용한다.


 

Q. TIMESTAMP와 DATETIME의 차이는?

A.

  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을 가지고 있다.

 

만일 DATETIME과 TIMESTAMP에서 동일하게 now()를 받는다면

mysql 또는 mariaDB 에 설정되어있는 TIME_ZONE에 따라 입력값이 다르게 나타날 수 있다.

반응형