>데이터 베이스 >MySQL 튜토리얼 >시간대 변환 문제를 피하기 위해 MySQL에서 시간대 정보와 함께 날짜 시간을 어떻게 저장할 수 있습니까?

시간대 변환 문제를 피하기 위해 MySQL에서 시간대 정보와 함께 날짜 시간을 어떻게 저장할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-19 15:02:11199검색

How Can I Store Datetimes with Timezone Information in MySQL to Avoid Timezone Conversion Issues?

MySQL에서 시간대 정보와 함께 날짜/시간 저장: 시간대 차이 해결

질문:

방법 서버 시간대를 고려하여 시간대 정보와 함께 MySQL 데이터베이스에 날짜 시간을 저장할 수 있습니까? 저장되는 데이터의 시간대와 다른가요?

토론:

이벤트가 발생하는 실제 시간을 반영하는 정확한 타임스탬프를 유지하려면 시간대 정보와 함께 날짜/시간을 저장하는 것이 필수적입니다. 서버의 위치나 시간대에 상관없이 발생합니다. 탄자니아에서 촬영하여 미국 서버에 저장된 사진과 같이 다양한 시간대의 데이터를 처리할 때는 타임스탬프가 올바른 시간대로 보존되는지 확인하는 것이 중요합니다.

답변:

MySQL에 시간대 정보와 함께 날짜/시간을 저장하고 시간대 변환 문제를 방지하려면 다음을 따르십시오. 단계:

  1. DATETIME 유형 사용: 타임스탬프를 UTC로 저장하는 TIMESTAMP와 달리 DATETIME은 지정된 시간대의 타임스탬프를 유지합니다. 이렇게 하면 서버의 시간대에 관계없이 탄자니아 타임스탬프가 탄자니아 시간으로 저장됩니다.
  2. 애플리케이션 코드 조정: 데이터를 저장하기 전에 애플리케이션 코드에서 데이터의 시간대를 명시적으로 설정해야 합니다. 데이터베이스에서. 예를 들어 탄자니아 날짜/시간을 DATETIME 열에 삽입하는 경우 INSERT 문을 실행하기 전에 타임스탬프를 탄자니아 시간으로 변환해야 합니다.

예:

INSERT INTO Images (TimestampJPG) VALUES (CONVERT_TZ('2011-03-13 02:49:10', '+00:00', '+03:00'));

추가 고려 사항:

  • 세션 시간 사용 방지: 세션이 제대로 설정되지 않은 경우 세션 시간에 의존하면 잘못된 타임스탬프가 발생할 수 있습니다.
  • 시간대 지원 라이브러리 사용: 복잡한 시간대 처리의 경우 시간대를 제공하는 PHP 또는 MySQL 라이브러리 사용을 고려하세요. 지원하세요.
  • 글로벌 배포를 위해 UTC를 고려하세요. 저장된 데이터를 다양한 시간대의 사용자가 액세스하는 경우 타임스탬프를 UTC로 저장하고 즉시 변환하는 것이 더 나은 표시 옵션일 수 있습니다. 각 사용자에게 올바르게 적용하세요.

위 내용은 시간대 변환 문제를 피하기 위해 MySQL에서 시간대 정보와 함께 날짜 시간을 어떻게 저장할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.