SQL Server 2008 R2 の場合:
select SYSDATETIMEOFFSET()
GMT -6 に戻ります。
SQL Server が実行されている Windows の TimeZone は GMT -7 に設定されています。
なぜ違いがあるのでしょうか?TimeZone を設定する必要がある SQL Server の場所はありますか?
SQL Server 2008 R2 の場合:
select SYSDATETIMEOFFSET()
GMT -6 に戻ります。
SQL Server が実行されている Windows の TimeZone は GMT -7 に設定されています。
なぜ違いがあるのでしょうか?TimeZone を設定する必要がある SQL Server の場所はありますか?
これは、サマータイムが実施されているためだと思います。あなたのタイムゾーンは公式には「GMT-7」と呼ばれています。つまり、通常 (1 年の夏時間の部分ではありません)、あなたの時間は GMT より 7 時間早いことを意味します。ただし、サマータイム中は、その時間が調整されます (通常は 1 時間ですが、タイムゾーンによって異なる場合があります)。そのため、現在サマータイムを使用している場合、「GMT-7」タイムゾーンにいる場合でも、時計は現在 GMT-6 (GMT より 6 時間早い) のみです。SYSDATETIMEOFFSET() は、タイムゾーンの GMT からの「通常の」オフセットではなく、現在の GMT からの実際のオフセットを伝えているのではないかと思います。
MSDNによると、SQL Server は Windows の設定を使用します。
SQL Server 2012 は、GetSystemTimeAsFileTime() Windows API を使用して日付と時刻の値を取得します。
タイム ゾーンを変更した後、SQL Server サービスを再起動する必要があるのではないでしょうか?