2016-09-17 3 views
1

SQL에서 MySQL로 데이터베이스를 변환해야하므로 성공적으로 수행되었습니다. 그러나이 질문은 이제 MySQL에 맞춰졌습니다. TIMESTAMP 대 DATETIME MySQL

나는 내가 Timestamp 열 유형에 DateTime 문자열을 삽입 할 수있어, 그리고 내가 타임 스탬프 그러나, 수용 중 날짜 시간 또는 실제 타임 스탬프에 대해 무엇을 듣고에서, 잘 할, 나는 "ON UPDATE CURRENT_TIMESTAMP"에 대해 궁금 것으로 나타났습니다 지금은 Timestamp 유형에서만 사용할 수 있기 때문에 데이터베이스의 컬럼에 저장했습니다. 이것은 을 기준으로 업데이트 할 때 YYYY-MM-DD HH:MM:SS 형식이 아닌 타임 스탬프를 사용합니까?

이 데이터가이 열에서 정확히 가져온 데이터에 어떻게 영향을 줍니까?

예를 들어, 일부 날짜가 숫자 시간 소인 일 수 있고 다른 날짜는 DATETIME 형식 일 수있는 경우 현재 날짜/시간을 TIMESTAMP 열에서 가져 오는 것이 어려울까요? DATETIME을 ON_UPDATE 데이터베이스의 혼합 데이터 문제를 피할 수없는이 열의 유형으로 사용해야합니까?

답변

2

내부적으로 모두 TIMESTAMP 데이터는 Unix epoch부터 초를 나타내는 4 바이트 정수로 저장됩니다. 소프트웨어에 표시되는 내용은 소프트웨어가이 데이터를 제공하는 방법에 따라 다릅니다. 예를 들어, 시간대를 다른 것으로 변경하면 TIMESTAMP 열에서 읽은 데이터에 영향을 미칩니다. (Unix 신기원은 UTC입니다)

데이터가 혼합되지 않습니다. MySQL은 YYYY-MM-DD HH:MM:SS을 타임 스탬프로 변환합니다. 시간대를 조심하세요!

TIMESTAMP 컬럼을 쿼리 할 때, MySQL은 기본적으로 사람이 읽을 수있는 형식으로 포맷하므로, 정수를 얻지는 않을 것입니다. 필드와 같이 YYYY-MM-DD HH:MM:SS 형식의 문자열을 가져옵니다.

+0

글쎄, 지금은 일부 열을 TIMESTAMP로 바꿨지 만, MySQL은 여전히 ​​그것들을 'YYYY-MM-DD HH : MM : SS' 형식의 문자열로 보여 주므로 아무 것도 변환되지 않았습니다. –

+0

변환되었습니다. 저를 믿으십시오 :) 그것은 당신의 클라이언트가 인간 친절한 체재에서 이것을 보여준다. – Mchl

+0

phpMyAdmin을 사용하면 여전히 'YYYY-MM-DD HH : MM : SS' 문자열로 표시됩니다. 또한, PHP를 통해 데이터베이스에서 이들을 가져 오는 가장 좋은 방법은 무엇입니까,'strtotime' 함수를 사용하여 여전히 시간으로 변환해야합니까? –