SYSDATETIME (Transact-SQL)

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

Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando.

Nota

SYSDATETIME y SYSUTCDATETIME tienen más precisión de fracciones de segundo que GETDATE y GETUTCDATE. SYSDATETIMEOFFSET incluye el ajuste de zona horaria del sistema. SYSDATETIME, SYSUTCDATETIME y SYSDATETIMEOFFSET pueden asignarse a una variable de cualquier tipo de fecha y hora.

Azure SQL Database (con la excepción de Azure SQL Managed Instance) y Azure Synapse Analytics siguen UTC. Use el valor AT TIME ZONE en Azure SQL Database o Azure Synapse Analytics si necesita interpretar la información de fecha y hora en una zona horaria distinta de UTC.

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

SYSDATETIME ( )  

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 devuelto

datetime2(7)

Comentarios

Las instrucciones Transact-SQL pueden hacer referencia a SYSDATETIME en cualquier punto desde el que puedan hacer referencia a una expresión datetime2(7).

SYSDATETIME 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

Los ejemplos siguientes usan las seis funciones de sistema SQL Server que devuelven 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. Obtener la fecha y hora actuales del sistema

SELECT SYSDATETIME()  
    ,SYSDATETIMEOFFSET()  
    ,SYSUTCDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE()  
    ,GETUTCDATE();  
/* Returned:  
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. Obtener la fecha actual del sistema

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  
  
/* All returned 2007-04-30 */  

C. Obtener la hora actual del sistema

SELECT CONVERT (time, SYSDATETIME())  
    ,CONVERT (time, SYSDATETIMEOFFSET())  
    ,CONVERT (time, SYSUTCDATETIME())  
    ,CONVERT (time, CURRENT_TIMESTAMP)  
    ,CONVERT (time, GETDATE())  
    ,CONVERT (time, GETUTCDATE());  
  
/* Returned  
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  
*/  

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

D. Obtener la fecha y hora actuales del sistema

SELECT SYSDATETIME();  

El conjunto de resultados es el siguiente:

--------------------------  
7/20/2013 2:49:59 PM

Consulte también

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