MySQL에서 큰 int 또는 일반 int를 사용하여 타임 스탬프를 저장해야합니까?

StackOverflow https://stackoverflow.com/questions/2031228

  •  19-09-2019
  •  | 
  •  

문제

MySQL에서 큰 정수 나 일반 정수를 사용하여 기적을 저장해야합니까? 내장 타임 스탬프 나 DateTime이 아닌 int에 저장할 계획이므로 어떤 int 유형을 사용해야합니까?

도움이 되었습니까?

해결책

int는 2038 년에 네거티브로 롤오버됩니다 (Unix 타임 스탬프를 사용하는 경우) : http://en.wikipedia.org/wiki/2038_problem.

너무 큰 것은 아마도 가장 안전한 선택 일 것입니다

다른 팁

DBMS가 타임 스탬프 데이터에 최적화 할 가능성이 높기 때문에 타임 스탬프에 저장해야합니다.

MySQL 개발자가 타임 스탬프를 만들기 위해 한 모든 노력을 희생하고 거의 작동하지 않는 무언가로 대체하는 이유에 대해 궁금합니다.

당신은 진술하지 않기 때문에 당신은 정수를 사용하고 싶어합니다. 나는 그것이 일시적인 광기라고 가정하고 곧 회복 될 것이라고 가정 할 것입니다 :-)

나는 그것이 당신이하고 싶은 일에 전적으로 달려 있다고 생각합니다. 시간/날짜 유형을위한 몇 가지 적절한 유형이 있습니다 (참조 : 참조 : http://dev.mysql.com/doc/refman/55.0/en/date-andtime-type-overview.html)

  • DATE - 일반적으로 3 바이트, 범위 : 1000-01-01 에게 9999-12-31.
  • DATETIME - 8 바이트, 범위 1000-01-01 00:00:00 에게 9999-12-31 23:59:59
  • TIMESTAMP -4 바이트 범위 1970-01-01 00:00:01 UTC 2038-01-19 03:14:07 UTC. 그런 다음 다음과 같은 의미 론적 문제가 있습니다.

(int는 타임 스탬프와 같은 4 바이트이며, 큰 링트는 dateTime과 같은 8 바이트입니다)

  • 날짜 상점 캘린더 일, DateTime 및 Timestamp는 두 번째 정밀도로 저장 날짜+시간을 모두 두 번째 정밀도로 날짜 산술에서 지원되지만 스토리지 용으로는 지원되지 않음)
  • 타임 스탬프는 UTC 값을 저장합니다. 즉, 당신이 붙어있는 값은 세션의 시간대 (기본적으로 서버의 시간대)에서 UTC로 변환되어 저장됩니다. 검색시 UTC 값은 세션에서 유효한 시간대로 다시 변환됩니다.
  • 타임 스탬프는 삽입 또는 업데이트 또는 둘 다에서 현재 타임 스탬프를 자동으로 가져 오도록 선언 할 수 있습니다. 당신은 세부 사항에 대한 매뉴얼을 가장 잘 공부합니다 (참조 http://dev.mysql.com/doc/refman/5.1/en/timestamp.html)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top