# localdate ❇️

La función localdate transforma una fecha con ajuste de zona horaria (tipo datetimeoffset) a la misma fecha pero con la hora equivalente en la zona horaria local.

El resultado es de tipo datetime.

# Ejemplo

select localdate('2022-04-12T16:12:00-08:00') result1;
select localdate(cast('2022-04-12T16:12:00-08:00' as datetimeoffset)) result2;

El código SQL generado es:

SELECT CAST(SWITCHOFFSET('2022-04-12T16:12:00-08:00',DATENAME(tzoffset,SYSDATETIMEOFFSET())) as datetime) AS result1
SELECT CAST(SWITCHOFFSET(CAST('2022-04-12T16:12:00-08:00' AS datetimeoffset),DATENAME(tzoffset,SYSDATETIMEOFFSET())) as datetime) AS result2

En España el resultado será:

2022-04-12T01:12:00

2022-04-12T01:12:00

Este resultado nos indica que cuando eran las 16:12 en la zona horaria del pacífico (PST) eran la 01:12 en la zona horaria cental europea (CEST).

Si la configuración regional de la base de datos es distinta se obtendrá un resultado distinto.

# Comentario

CEST significa "Central European Summer Time" o traducido "Hora de Verano de Europa Central". Es el horario de verano de la Hora Central Europea.

Las diferencias entre las distintas zonas horarias siempre se dan en relación con el "Tiempo Universal Coordinado" (UTC), es decir, el tiempo que existe en el meridiano cero (cero grados de longitud). La zona horaria UTC +1 es válida para la hora de Europa Central. En verano, adelantamos los relojes una hora, alcanzando así el UTC +2.