Unix 시간 변수에 32bit 정수형을 사용해서 발생한 이슈로,
DBMS에서 현재 날짜+시간+timezone을 나타내는 TIMESTAMP 타입 변수를 사용할 시
2038-01-19 03:14:07 UTC까지가 표기 최대범위인 문제가 있다.
MySQL에는 아직 해당 이슈가 남아있다.
이 시간을 초과하면 사인 비트가 1로 변하면서 음수가 되어 자동으로 오류를 감지하면서 시간이 0으로 초기화(1970-01-01 00:00:00)으로 돌아가는 버그이다.
따라서 TIMESTAMP 대신 DATETIME변수를 사용하거나, 시간 변수에 64비트를 사용하면 문제가 해결(?)된다. 292,277,026,596년까지 표기되므로 나를 포함한 이 글을 보고 있는 사람들 모두 64비트를 사용함으로써 발생하는 문제와는 상관이 없지 않을까?ㅎㅎㅎ
반응형
'MySQL' 카테고리의 다른 글
InnoDB flush method (0) | 2021.03.28 |
---|---|
[Collation] UTF8 charset & collation 비교 (0) | 2021.02.26 |
[data type]CHAR형의 pad_char_to_full_length 옵션과 VARCHAR형 비교 (0) | 2021.02.26 |
[InnoDB] Redo Log와 checkpoint age (0) | 2021.02.22 |
[InnoDB] In-memory buffer의 종류 (0) | 2021.02.19 |