mysql에서 시간을 표현하는 데 사용되는 날짜, 날짜시간, 타임스탬프(int로 계산하면 네 가지 유형)는 비교적 혼동하기 쉬우므로 아래에서 이 세 가지 유형의 유사점과 차이점을 비교해 보겠습니다.
같은 점
는 시간을 나타내는 데 사용할 수 있습니다
는 문자열
Differences
1로 표시됩니다. 이름에서 알 수 있듯이 date는 'YYYY-MM-DD' 형식의 날짜만 나타내고, datetime은 'YYYY-MM'을 나타냅니다. -DD'
HH:mm:ss' 형식의 날짜 + 시간, 타임스탬프는 날짜/시간과 동일한 형식으로 표시됩니다.
2. 날짜와 날짜시간이 표현할 수 있는 시간 범위는 '1000-01-01'부터 '9999-12-31'까지입니다. 32비트 정수형의 제한으로 인해 타임스탬프는 '1970-01-01'을 나타낼 수 있습니다. '
00:00:01'to'2038-01-19
03:14:07' UTC 시간.
3. MySQL은 타임스탬프 유형을 저장할 때 시간을 UTC 시간으로 변환한 다음 읽을 때 현재 시간대로 복원합니다.
타임스탬프 유형 값을 저장한 다음 MySQL 시간대를 수정하면 값을 다시 읽을 때 잘못된 시간을 얻게 됩니다. 날짜와 날짜/시간에는 이런 일이 발생하지 않습니다.
4. 타임스탬프 유형은 자동 업데이트 기능을 제공하므로 기본값을 CURRENT_TIMESTAMP로 설정하기만 하면 됩니다.
5. 날짜가 날짜로 유지되는 것을 제외하고 날짜/시간 및 타임스탬프는 모두 초로 유지되며 밀리초는 무시됩니다.
시간 형식
mysql은 추가, 삭제, 수정 및 쿼리를 위한 상대적으로 느슨한 시간 문자열 형식을 제공합니다. 일반적으로 '2013-06-05'로 표기되는 iso 시간 형식을 참고하세요. 16:34:18'. 하지만 '13-6-5'로 축약할 수도 있지만 이는 쉽게 혼동을 일으킬 수 있습니다. 예를 들어 mysql은 '13:6:5'를 연도, 월, 일로 처리하며, '13:16'도 처리합니다. :5' 형식을 사용하면 mysql은 잘못된 형식으로 간주하여 경고를 표시하고 데이터베이스에 저장된 값은 '0000-00-00'입니다. 00:00:00'.
설명서에도 구체적으로 상황이 언급되어 있는데, 즉, 현재 연도의 값이 0~69이면 mysql은 2000~2069로 간주하고, 70~99이면 1970~1999로 간주한다는 것입니다. . 불필요한 것 같은 느낌이 듭니다.
요컨대, 끊임없이 변화하는 상황에 적응하려면 항상 'YYYY-MM-DD HH:mm:ss' 형식을 사용하는 것이 옳습니다
위 내용은 MySQL의 날짜시간과 타임스탬프의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!