datetime_expression - datetime expression in original time zone.tz_value - string representing the target time zone. Use an IANA (tz database) region identifier in Area/City form, such as Europe/London, America/Chicago, or Asia/Tokyo. See the List of tz database time zones on Wikipedia for valid identifiers.SwitchTimeZone changes how the instant is displayed, not the instant itself.
Pick the region identifier for your location (for example, Europe/London) and let SwitchTimeZone handle the rest. Region identifiers adjust for daylight saving automatically using the tz database.Never pick a zone because its offset happens to match your clock today. A zone chosen by offset, or a different region that shares your current offset, will be wrong for part or all of the year. For example, Europe/Madrid sits at the same offset as Europe/London in summer but is permanently one hour ahead in winter.
SwitchTimeZone(ToDate('2014-11-01T23:30:00+02:00'),'America/Chicago') returns 2014-11-01T15:30:00-06:00Daylight saving is applied automatically for the given region. In summer, Europe/London is one hour ahead of UTC:SwitchTimeZone(ToDate('2026-07-27T17:00:00Z'),'Europe/London') returns 2026-07-27T18:00:00+01:00In winter, the same region is back at UTC+0:SwitchTimeZone(ToDate('2026-12-01T17:00:00Z'),'Europe/London') returns 2026-12-01T17:00:00ZTo build a dynamic lookback value for a SQL WHERE clause, combine SwitchTimeZone with ToString. This gives the current London wall-clock time minus 60 minutes, formatted for the query:ToString(SwitchTimeZone(SubtractDuration(CurrentTime(), 'PT1H'), 'Europe/London'), 'yyyy-MM-dd HH:mm:ss')