> 데이터 베이스 > MySQL 튜토리얼 > 일광 절약 시간제 전환 중에 MySQL이 모호한 날짜 시간을 어떻게 처리할 수 있습니까?

일광 절약 시간제 전환 중에 MySQL이 모호한 날짜 시간을 어떻게 처리할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-25 20:29:09
원래의
709명이 탐색했습니다.

How Can MySQL Handle Ambiguous Datetimes During Daylight Saving Time Transitions?

MySQL의 일광 절약 시간으로 모호한 날짜 시간 처리

일광 절약 시간(DST)이 발생하면 어려운 시간이 모호합니다. 의도된 시간 참조를 결정합니다. 예를 들어 미국/뉴욕 시간대에서는 가을 전환 기간 동안 오전 1시 30분이 두 번 발생할 수 있습니다.

문제:

MySQL의 DATETIME 및 TIMESTAMP 필드는 고유한 값을 나타냅니다. 이러한 모호한 시기를 처리하는 데 어려움이 있습니다. DATETIME 필드는 시간대나 DST 변환을 고려하지 않고 날짜와 시간을 있는 그대로 저장합니다. TIMESTAMP 필드는 입력 타임스탬프를 UTC로 또는 그 반대로 변환합니다.

해결책:

1. DATETIME 필드 사용:

DATETIME 필드에 저장하기 전에 타임스탬프를 UTC로 변환하세요. 이렇게 하면 저장할 정확한 UTC 시간을 제어할 수 있습니다.

2. 검색된 데이터 해석:

DATETIME 필드에서 검색된 타임스탬프를 MySQL 외부의 UTC 타임스탬프로 해석합니다. 이는 MySQL의 날짜/시간 함수로 인해 발생하는 모호성을 방지합니다.

3. TIMESTAMP 필드 피하기:

DST가 포함될 때 현지 시간과 UTC 간의 변환이 일관되지 않을 수 있으므로 TIMESTAMP 필드 사용을 피하세요.

구현:

가져오는 중 데이터:

// Example using PHP's DateTime class
$timestamp = strtotime($db_timestamp . ' UTC');
로그인 후 복사

데이터 저장:

// Example using PHP's DateTime class
$UTCDateTime = new DateTime('2009-11-01 1:30:00 EST');
$db_timestamp = $UTCDateTime->format('Y-m-d H:i:s');
로그인 후 복사

고려 사항:

  • MySQL 날짜/시간 함수는 DST에 데이터를 저장할 때 DST 경계를 안정적으로 처리할 수 없습니다. 시간대.
  • DATETIME 필드의 오프셋을 지정하면 MySQL에서 무시됩니다.

위 내용은 일광 절약 시간제 전환 중에 MySQL이 모호한 날짜 시간을 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿