2016-07-29 3 views
0

쿼리 결과에서열의 값을 UTC 대신 클라이언트의 현지 표준 시간대에 표시하도록 Sql Server Management Studio를 구성하는 방법이 없습니까?SSMS에서 DateTimeOffset 값을 로컬 시간대로 표시

예 : 현재 시간대는 +02 : 00입니다. 값은 2016-07-27 22:00:00.0000000 +00:00으로 저장됩니다. 현재이 값은 쿼리 결과에 표시됩니다. 내 컴퓨터의 SSMS에서이 쿼리를 실행할 때 2016-07-28 00:00:00.0000000 +02:00으로 표시 (서식 지정)하고 싶습니다.

현재 저는 수동으로 매우 성 가시고 SWITCHOFFSET(CONVERT(datetimeoffset, <DateColumn>), DATENAME(TzOffset, SYSDATETIMEOFFSET()))과 같은 것을 사용하고 있습니다.

내가 실수하지 않는다면, Oracle에서는 세션 레벨의 NLS 매개 변수를 사용할 수 있습니다. Sql Server와 비슷한 기능이 있습니까?

답변

1

SQL Server 나 SSMS 모두 "세션 시간대"(Oracle, MySql 등) 개념을 사용하는 기능이 없습니다.

오프셋은 실제로 저장된 datetimeoffset 값의 일부이기 때문에 자동으로 오프셋을 변환하는 것은 의미가 없습니다. 당신은 SQL 서버 2016, 또는 푸른 SQL 데이터베이스를 사용하는 경우

, 당신은 같이 새로운 AT TIME ZONE 문을 사용할 수 있습니다 :

SELECT yourdto AT TIME ZONE @thetimezoneid 

그렇지 않으면, 내 SQL Server Time Zone Support 프로젝트를 사용하는 것이 좋습니다.

어느 쪽도 시스템의 시간대 ID를 제공 할 수 없습니다. 함께 작업 할 시간대를 알아야합니다.