En SQL Server, el transact-sql SYSDATETIMEOFFSET()
la función devuelve un datetimeoffset(7) valor que contiene la fecha y la hora del equipo en el que se ejecuta la instancia de SQL Server. Este valor incluye el desplazamiento de la zona horaria.
Ejemplos de uso a continuación.
Sintaxis
La sintaxis es así:
SYSDATETIMEOFFSET ( )
Así que simplemente llamas a la función sin ningún argumento.
Ejemplo
He aquí un ejemplo básico:
SELECT SYSDATETIMEOFFSET() AS Result;
Resultado:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Extracción de la compensación de zona horaria
Puede usar el DATEPART()
función para devolver el desplazamiento de la zona horaria. Esta función devuelve un número entero que representa el desplazamiento de la zona horaria en minutos.
Ejemplo:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Resultado:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
También puede usar la función FORMAT() para devolver el desplazamiento de la zona horaria como una cadena. Específicamente, puede usar el z
, zz
y/o zzz
argumentos para devolverlo en el formato requerido.
Ejemplo:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Resultado:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Conversión del valor de retorno
También puede usar funciones como CONVERT()
para convertir el valor devuelto en otro tipo de datos. Aquí hay un ejemplo donde lo convierto en una fecha valor y un tiempo valor:
SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Resultado:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Por supuesto, una vez que hacemos eso, perdemos la compensación de la zona horaria.
Ver también TODATETIMEOFFSET()
que le permite obtener un datetimeoffset valor de un datetime2 expresión y SWITCHOFFSET()
que le permite cambiar una compensación de zona horaria.