개발/Database

timestamp의 가장 큰 값

신매력 2016. 9. 12. 12:16

Mysql의 timestamp 컬럼을 쓰고 있는데,

큰 수의 년도를 저장하려고 시도했더니 

 

Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value:

이런 에러가 발생했다.

 

https://dev.mysql.com/doc/refman/5.5/en/datetime.html

Mysql 레퍼런스에 따르면

timestamp는 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.

이 시간의 범위를 저장할 수 있다고 한다.

 

 

애매한 시간인 2038년 1월 19일까지인 이유는 

초를 4byte로 저장하기 때문이고,

그 max 값이 저 날짜이기 때문이다.

 

현재 timestamp의 가장 큰 값을 식으로 나타내면 아래와 같다.

long MAX = (long) Integer.MAX_VALUE * 1000;
Date date = new Date(MAX);