2017-10-10 7 views
0

우리 서버는 미국 표준시 표준 시간대이며 CST 표준 시간대는 UTC 표준 시간대보다 6 시간 늦습니다. 그것이 일광 절약 시간이기 때문에, 차이는 5 시간입니다.SQL Server가 함수에 대해 잘못된 UTC 시간을 반환합니다. GETUTCDATE

GETDATE 함수는 올바른 현지 시간을 반환하지만 GETUTCDATE은 잘못된 UTC 시간을 반환합니다. GETUTCDATE은 CST보다 7 시간 앞 (UTC + 2 : 00)의 시간을 반환합니다.

서버의 시간대를 확인했으며 CST 시간대 (UTC - 6:00)로 설정되어 있고 "자동으로 시간대 설정"옵션이 꺼져있었습니다.

확인할 사항이 무엇인지 잘 모르겠습니다.

답변

0

"시간대를 자동으로 설정"은 Windows 10/Server 2016에 추가 된 편의입니다. 사용 가능한 위치 정보를 사용하여 시간대를 설정합니다. 꼭 필요한 것은 아니며 실제로 서버에서는 중요하지 않습니다. 실제로 서버를 UTC 표준 시간대로 일부러 설정하여 로컬 시간차가 간섭하지 않도록하는 것이 가장 좋습니다. 이 옵션을 고려할 수도 있습니다.

  1. 서버의 시계가 신뢰할 수있는 시간 원본에 동기화 :

    그러나, 확인하는 몇 가지가있다?

    • 서버가 도메인에 있으면 도메인 컨트롤러의 시계가 인터넷 기반 시간 원본 또는 다른 신뢰할 수있는 시간 원본과 동기화 되었습니까?
    • 도메인에 없으면 "자동으로 시간 설정"또는 "인터넷 시간"이 설정되어 있습니까? 또는 시계를 올바르게 설정하기위한 다른 메커니즘이 있습니까?
    • 시계가 동기화되는 위치를 모르면 승격 된 명령 프롬프트에서 w32tm /query /source을 시도하십시오.
    • 원시 UTC 시간을 확인하려면 Powershell에서 [DateTime]::UtcNow을 시도하십시오. 자동으로 일광을 위해 시계를 조정 "시스템이 로컬 시간대 구성되어있는 경우"자동으로 일광 절약 시간 조정 ",
  2. 입니다 (시간대 없음 또는 DST 설정. 결과에 영향을 미칠 것입니다) (또는 이전 제어판의 "Saving Time")이 켜져 있습니까? 이 설정은 절대로 사용하지 않아야합니다. 레거시 용도로만 존재합니다.

    • 확실하지 않은 경우, 컴 맨드 프롬프트에서 tzutil /g을 시도하십시오. 결과에 이름에 _dstoff이 있으면 다시 켜야합니다.