TODATETIMEOFFSET (Transact-SQL)
Devuelve un valor de tipo datetimeoffset que se traduce a partir de una expresión datetime2.
Convenciones de sintaxis de Transact-SQL
Sintaxis
TODATETIMEOFFSET ( expression , time_zone )
Argumentos
expression
Es una expresión que se resuelve en un valor de tipo datetime2.[!NOTA]
La expresión no puede ser del tipo text, ntext o image, ya que estos tipos no se pueden convertir implícitamente en varchar o nvarchar.
time_zone
Es una expresión que representa el desplazamiento de zona horaria en minutos (si es un entero), por ejemplo -120, o las horas y los minutos (si es una cadena), como “+13.00". El intervalo es de +14 a -14 (en horas). La expresión se interpreta en la hora local para el valor time_zone especificado.[!NOTA]
Si la expresión es una cadena de caracteres, debe tener el formato {+|-}TZH:THM.
Tipo devuelto
datetimeoffset. La precisión fraccionaria es la misma que la del argumento datetime.
Ejemplos
A.Cambiar el ajuste de zona horaria de la fecha y hora actuales
En el ejemplo siguiente se cambia el ajuste de zona horaria de la fecha y hora actuales a la zona horaria -07:00.
DECLARE @todaysDateTime datetime2;
SET @todaysDateTime = GETDATE();
SELECT TODATETIMEOFFSET (@todaysDateTime, '-07:00');
-- RETURNS 2007-08-30 15:51:34.7030000 -07:00
B.Cambiar el ajuste de zona horaria en minutos
En el ejemplo siguiente se cambia la zona horaria actual a -120 minutos.
DECLARE @todaysDate datetime2;
SET @todaysDate = GETDATE();
SELECT TODATETIMEOFFSET (@todaysDate, -120);
-- RETURNS 2007-08-30 15:52:37.8770000 -02:00
C.Agregar un ajuste de zona horaria de 13 horas
En el ejemplo siguiente se agrega un ajuste de zona horaria de 13 horas a una fecha y hora.
DECLARE @dateTime datetimeoffset(7)= '2007-08-28 18:00:30';
SELECT TODATETIMEOFFSET (@dateTime, '+13:00');
-- RETURNS 2007-08-28 18:00:30.0000000 +13:00