당신은 얻을 수있는 보편적 인 모든 가능한 데이터베이스 값을 UTC로 저장하고 싶습니다. 이러한 설정은 대개 데이터를 보는 개인에 따라 매우 다양하기 때문에 응용 프로그램 계층에서 로컬 시간으로 렌더링 할 수 있습니다.
매일 오후 6시와 같이 특정 배달 시간이 있고 그 시간이 UTC로 언제 떨어져 있는지 알고 싶으면 시간을 작성하고 UTC로 변환 할 수 있습니다. 대부분의 시간대는 현지 시간으로 1 시간 전후로 DST를 관찰하지만 UTC가 아닙니다.
보통 데이터베이스에는 임의의 시점을 구성 할 수있는 MAKEDATE()
또는 MAKETIME()
과 같은 기능이 있습니다. 시간대를 사용하여 원하는 표준 시간대를 만든 다음 UTC로 전환하여 "고정"상태로 유지하십시오.
"일년에 두 번 변경해야합니다"코드를 가지고있을 때 이 변경되지 않고이 변경되고 혼돈이 발생하는 코드가 있습니다. 이러지 마. 당신은 실패에 대한 자신을 설정하는 것뿐입니다.
참고로 SQL에서이 모든 작업을 수행하는 것은 운영 체제에 많이 의존하지 않는 한 데이터베이스가 항상 최신 표준 시간대 정보를 가지고 있지 않기 때문에 매우 혼란 스러울 수 있습니다. 귀하의 운영 체제는 일반적으로 더 잘 갖추어져 있으며, 변경된 사항이 it did in 2005 일 경우 패치가 적용됩니다. 심지어 패치와 패치가 혼합 된 시스템이 지속적으로 충돌 한 이후로는 완전히 엉망이었습니다.
모든 것을 utc에 저장하고 utc를 사용하여 모든 비교/계산을 수행하십시오. 표시 목적으로 만 "로컬"TZ로 변환합니다. –