Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Analítica (PDW)
Base de datos SQL en Microsoft Fabric
Devuelve un valor datetimeoffset que ha cambiado el ajuste de zona horaria almacenado por un nuevo ajuste de zona horaria especificado.
Para obtener información general sobre todos los tipos y funciones de datos de fecha y hora de Transact-SQL, consulte Tipos y funciones de datos de fecha y hora.
Convenciones de sintaxis de Transact-SQL
Sintaxis
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Argumentos
datetimeoffset_expression
Expresión que se puede resolver en un valor datetimeoffset(n).
timezoneoffset_expression
Expresión con el formato [+|-]TZH:TZM o un entero con signo (de minutos) que representa el desplazamiento de zona horaria y se supone que es compatible con el horario de verano y se ajusta.
Tipos de retorno
datetimeoffset con la precisión fraccionaria del argumento datetimeoffset_expression.
Comentarios
Use SWITCHOFFSET para seleccionar un valor datetimeoffset en un desplazamiento de zona horaria diferente del desplazamiento de zona horaria que se almacenó originalmente.
SWITCHOFFSET no actualiza el valor de time_zone almacenado.
SWITCHOFFSET se puede usar para actualizar una columna datetimeoffset .
El uso SWITCHOFFSET con la función GETDATE() puede hacer que la consulta se ejecute lentamente. Esto se debe a que el optimizador de consultas no puede obtener estimaciones de cardinalidad precisas para el valor datetime. Para resolver este problema, use la OPTION (RECOMPILE) sugerencia de consulta para forzar al optimizador de consultas a volver a compilar un plan de consulta la próxima vez que se ejecute la misma consulta. A continuación, el optimizador tiene estimaciones de cardinalidad precisas y genera un plan de consulta más eficaz. Para obtener más información sobre la RECOMPILE sugerencia de consulta, consulte Sugerencias de consulta.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Ejemplos
En el ejemplo siguiente se usa SWITCHOFFSET para mostrar un ajuste de zona horaria diferente del valor almacenado en la base de datos.
CREATE TABLE dbo.test (ColDatetimeoffset DATETIMEOFFSET);
GO
INSERT INTO dbo.test VALUES ('1998-09-20 7:45:50.71345 -5:00');
GO
SELECT SWITCHOFFSET (ColDatetimeoffset, '-08:00')
FROM dbo.test;
GO
--Returns: 1998-09-20 04:45:50.7134500 -08:00
SELECT ColDatetimeoffset
FROM dbo.test;
--Returns: 1998-09-20 07:45:50.7134500 -05:00