SYSDATETIMEOFFSET (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Devuelve un valor datetimeoffset(7) que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. El ajuste de zona horaria está incluido.

Para una introducción acerca de todos los tipos de datos y funciones de fecha y hora de Transact-SQL, vea Funciones de fecha y hora (Transact-SQL).

Convenciones de sintaxis de Transact-SQL

Sintaxis

SYSDATETIMEOFFSET ( )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulta la Documentación de versiones anteriores.

Tipo de valor devuelto

datetimeoffset(7)

Observaciones

Las instrucciones Transact-SQL pueden hacer referencia a SYSDATETIMEOFFSET en cualquier punto desde el que puedan hacer referencia a una expresión datetimeoffset.

SYSDATETIMEOFFSET es una función no determinista. Las vistas y las expresiones que hacen referencia a esta función en una columna no se pueden indizar.

Nota

SQL Server obtiene los valores de fecha y hora usando la API de Windows GetSystemTimeAsFileTime(). La exactitud depende del hardware del equipo y de la versión de Windows en las que la instancia de SQL Server se esté ejecutando. La precisión de esta API se fija en 100 nanosegundos. La precisión se puede determinar por medio de la API de Windows GetSystemTimeAdjustment().

Ejemplos

En los ejemplos siguientes se usan las seis funciones del sistema de SQL Server que devuelven la fecha y hora actuales para devolver la fecha, la hora o ambas. Los valores se devuelven en serie; por consiguiente, sus fracciones de segundo podrían ser diferentes.

A. Mostrar los formatos que devuelven las funciones de fecha y hora

En el ejemplo siguiente se muestran los distintos formatos que devuelven las funciones de fecha y hora.

SELECT SYSDATETIME() AS [SYSDATETIME()]  
    ,SYSDATETIMEOFFSET() AS [SYSDATETIMEOFFSET()]  
    ,SYSUTCDATETIME() AS [SYSUTCDATETIME()]  
    ,CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP]  
    ,GETDATE() AS [GETDATE()]  
    ,GETUTCDATE() AS [GETUTCDATE()];  

El conjunto de resultados es el siguiente:

SYSDATETIME()      2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME()   2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP  2007-04-30 13:10:02.047
GETDATE()          2007-04-30 13:10:02.047
GETUTCDATE()       2007-04-30 20:10:02.047

B. Convertir valores de fecha y hora en date

En el ejemplo siguiente se muestra cómo convertir valores de fecha y hora en date.

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  

El conjunto de resultados es el siguiente:

2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30

C. Convertir fecha y hora en time

En el ejemplo siguiente se muestra cómo convertir valores de fecha y hora en time.

SELECT CONVERT (time, SYSDATETIME()) AS [SYSDATETIME()]  
    ,CONVERT (time, SYSDATETIMEOFFSET()) AS [SYSDATETIMEOFFSET()]  
    ,CONVERT (time, SYSUTCDATETIME()) AS [SYSUTCDATETIME()]  
    ,CONVERT (time, CURRENT_TIMESTAMP) AS [CURRENT_TIMESTAMP]  
    ,CONVERT (time, GETDATE()) AS [GETDATE()]  
    ,CONVERT (time, GETUTCDATE()) AS [GETUTCDATE()];  

El conjunto de resultados es el siguiente:

SYSDATETIME()      13:18:45.3490361
SYSDATETIMEOFFSET()13:18:45.3490361
SYSUTCDATETIME()   20:18:45.3490361
CURRENT_TIMESTAMP  13:18:45.3470000
GETDATE()          13:18:45.3470000
GETUTCDATE()       20:18:45.3470000

Consulte también

CAST y CONVERT (Transact-SQL)
Tipos de datos y funciones de fecha y hora (Transact-SQL)