SQL Server 2012
Key: Eastern Standard Time
Offset: -240
.Net 3.5 TimeZoneInfo
Key: Eastern Standard Time
Offset: -300
Technology Tips and News
SQL Server 2012
Key: Eastern Standard Time
Offset: -240
.Net 3.5 TimeZoneInfo
Key: Eastern Standard Time
Offset: -300
Hi,
This should be correct because
gives you the offset from GMT whereas TimeZoneInfo does not .
How do you get the value / how does your code look like?
By the difference of 1 hour I guess: Daylight Saving? Do you query the time offset both with the same date?
her are some code snippets
SQL Code
DECLARE @TimeZone VARCHAR(50), @TimeZoneOffset as datetimeoffset EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Control\TimeZoneInformation', 'TimeZoneKeyName', @TimeZone OUT set @TimeZoneOffset = SYSDATETIMEOFFSET() SELECT @TimeZone as TimeZone, datepart(TZOFFSET, @TimeZoneOffset) as [tzOffset]
.Net 3.5 Code
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load Dim tzCollection As ReadOnlyCollection(Of TimeZoneInfo) tzCollection = TimeZoneInfo.GetSystemTimeZones() 'Index: 92 'Key: Eastern Standard Time 'Offset: -300 For index As Integer = 0 To tzCollection.Count - 1 Debug.Print("Index: " & index.ToString & vbTab & "Key: " & tzCollection(index).Id & vbTab & vbTab & "Offset: " & tzCollection(index).BaseUtcOffset.TotalMinutes) Next End Sub
The 2 machines you are testing have different server timezone settings. This is causing the difference.