AT TIME ZONE - GMT Standard Time - Windows [Bug]

Alexander Ali 0 Reputation points
2025-10-24T09:57:17.63+00:00

Hi,

On Windows, SQL Server "AT TIME ZONE" uses the Windows Registry to determine time zone conversion.

However, daylight savings conversions in the "GMT Standard Time" time zone on Windows become inaccurate and problematic from years in the 1970s and earlier in this zone.

Example:

SELECT CAST('1975-03-30 00:00:00 +01:00' AS DATETIMEOFFSET) AT TIME ZONE 'GMT Standard Time'
Expected = '1975-03-30 00:00:00.0000000 +01:00'
Actual = '1975-03-29 23:00:00.0000000 +00:00'

This happens because Windows does not understand that in 1975, GMT Standard Time daylight savings started on 16th March. It is instead following a modern convention and assuming DST started on 31st March.

As far as I know this issue wouldn't happen on other operating systems running SQL Server.

Our database code uses "AT TIME ZONE" extensively, and due to this issue, affected date times are being displayed incorrectly to users.

Please can anyone help me escalate this issue to Microsoft.

Thank you.

SQL Server Database Engine
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Rekha 0 Reputation points Microsoft External Staff Moderator
    2025-10-24T17:01:46.4166667+00:00

    Hi @Alexander Ali ,

    Below is the workaround for the issue you are facing :

    1. Maintain a small table of historical DST transition dates for your zones (e.g. for GMT Standard Time from 1900–present).
    2. Then, perform conversion logic in SQL manually: CASE WHEN @dt BETWEEN '1975-03-16' AND '1975-10-26' THEN DATEADD(HOUR, 1, @dt) ELSE @dt END

    To Escalate it to Microsoft raise a support ticket at https://support.serviceshub.microsoft.com/supportforbusiness/create and inform the issue, they will escalate it to Microsoft.

    Thanks & Regards,

    Rekha Athmakuri.

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.