2012-07-04 2 views
1

웹 응용 프로그램에서 모든 날짜 값은 SQL 데이터베이스로 전달되기 전에 UTC로 변환 된 다음 응용 프로그램에 표시 될 때마다 현지 시간으로 다시 변환됩니다. 따라서 최종 날짜는 모든 날짜가 데이터베이스의 UTC에있는 것입니다.SQL Server 2008 표준 시간대 변환

보고서 개발을 시작할 때까지는 문제가 없습니다. Crystal Reports에는 시간대 변환을 수행 할 수있는 기능이 없으므로 보고서에서 값을 전달하기 전에 SQL 내에서 변환해야합니다.

SQL Server의 datetime 값 변환 기능이 훨씬 제한적인 것처럼 보입니다. 내가 보는 유일한 기능은 SWITCHOFFSET입니다. 이 함수의 문제점은 일광 절약 시간제가 주요 결함 인 것처럼 보일 수 없다는 것입니다. asp.net에서 시간대를 사용하여 datetime 값을 전달할 수 있으며 일광 절약 시간 조정을 고려하여 UTC 시간으로 자동 변환합니다.

SQL에서는 SWITCHOFFSET (SomeDate,"Eastern Time"),
과 같은 것을 말하는 대신 SWITCHOFFSET(SomeDate, "-4:00")을 사용해야합니다. 그러나 테이블에서 데이터를 가져와 서머 타임이 시작되는 3 월의 모든 데이터를 요청하면 어떻게됩니까? 무슨 일이 있어도 그 중 일부는 틀릴 것입니다. 나는 -4 : 00 또는 -5 : 00을 말할 수 있지만 분명히, 둘 다는 아닙니다.

솔직히 말해서 조정할 수있는 다른 기능이 있습니까? 일광 절약 시간 전환을 수행하는 방법을 모르면 SWITCHOFFSET은 절반 굽습니다.

+1

더 빨리 답변을 얻으실 수 있습니다.> [http://www.serverfault.com] – Shiham

+1

Alex : 편집 해 주셔서 감사합니다. 훨씬 더 읽기 쉬워졌습니다. :) –

+1

@marc_s arghh 내 편집! –

답변

1

Crystal Reports에 사용자의 현지 시간대를 감지하고 UTC의 날짜를 변환하는 ShiftDateTime 기능이 있다는 것을 알았습니다. 그것은 대부분의 사람들의 컴퓨터에서 98 %가 맞다고 생각하는 시간대를 올바르게 설정 한 사용자에 달려 있습니다.

+0

차가움. 이 답변을 틱 수 있습니다. –