나는 SQL을 사용하여 회의/이벤트를 만듭니다. 회의를 UTC로 저장 한 다음 회의를보고있는 시간대를 기준으로 최종 사용자에게 표시해야합니다.SQL 처리 날짜/시간 (UTC)
최종 사용자가 회의 시간을 선택하므로이 시간을 다음으로 변환해야합니다. UTC. 거기에서 로컬 사용자의 오프셋을 전달하고 로컬 시간으로 변환합니다.
-- Declare the local offset
DECLARE @offset INT = '420'
-- Convert a date/time to UTC
SELECT DATEADD(hh, DateDiff(hh, GetDate(), GetUTCDate()), '2015-01-08 17:45:00') AS ConvertedToUTC;
-- Convert a UTC back to local based on offset
SELECT DATEADD(minute, @offset, '2015-01-08 23:45:00.000') AS ConvertedToLocal
convertedUTC = 2015년 1월 8일 23 : 45 : 00.000
convertedLocal = 여기
나는 결과가 정확하지 않은 것처럼 잘못 내가 추측하고있는 한 일이다 2015-01-09 06 : 45 : 00.000예 : Bob은 2015 년 1 월 8 일 오후 1시에 회의를 만들고 애리조나에 있습니다. 그 시간을 UTC로 변환해야합니다. Jim이 오마하에서오고 회의 목록을 볼 때, 그의 오프셋을 기준으로 조정 된 시간을 보여줍니다.
올바르게 처리하는 방법에 대한 팁은 무엇입니까?
SQL의 DATETIMEOFFSET 데이터 유형을 살펴 보는 것이 좋습니다. – David