GETDATE (Transact-SQL)GETDATE (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Devuelve la marca de tiempo del sistema de base de datos actual como un valor datetime sin el desplazamiento de zona horaria de la base de datos.Returns the current database system timestamp as a datetime value without the database time zone offset. Este valor se deriva del sistema operativo del equipo donde la instancia de SQL ServerSQL Server se está ejecutando.This value is derived from the operating system of the computer on which the instance of SQL ServerSQL Server is running.

Nota

SYSDATETIME y SYSUTCDATETIME tienen más precisión de fracciones de segundo que GETDATE y GETUTCDATE.SYSDATETIME and SYSUTCDATETIME have more fractional seconds precision than GETDATE and GETUTCDATE. SYSDATETIMEOFFSET incluye el ajuste de zona horaria del sistema.SYSDATETIMEOFFSET includes the system time zone offset. SYSDATETIME, SYSUTCDATETIME y SYSDATETIMEOFFSET pueden asignarse a una variable de cualquier tipo de fecha y hora.SYSDATETIME, SYSUTCDATETIME, and SYSDATETIMEOFFSET can be assigned to a variable of any of the date and time types.

Para ver información general sobre todos los tipos de datos y funciones de fecha y hora de Transact-SQLTransact-SQL, vea Tipos de datos y funciones de fecha y hora (Transact-SQL).For an overview of all Transact-SQLTransact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

GETDATE ( )  

Tipo de valor devueltoReturn Type

datetimedatetime

ObservacionesRemarks

Las instrucciones Transact-SQLTransact-SQL pueden hacer referencia a GETDATE desde cualquier parte desde donde puedan hacer referencia a una expresión datetime.Transact-SQLTransact-SQL statements can refer to GETDATE anywhere they can refer to a datetime expression.

GETDATE es una función no determinista.GETDATE is a nondeterministic function. Las vistas y las expresiones que hacen referencia a esta función en una columna no se pueden indizar.Views and expressions that reference this function in a column cannot be indexed.

El uso de SWITCHOFFSET con la función GETDATE() puede hacer que la consulta se ejecute despacio porque el optimizador de consultas no puede obtener estimaciones de cardinalidad precisas para el valor de GETDATE.Using SWITCHOFFSET with the function GETDATE() can cause the query to run slowly because the query optimizer is unable to obtain accurate cardinality estimates for the GETDATE value. Se recomienda calcular previamente el valor de GETDATE y especificar después ese valor en la consulta como se muestra en el ejemplo siguiente.We recommend that you precompute the GETDATE value and then specify that value in the query as shown in the following example. Además, use la sugerencia de consulta OPTION (RECOMPILE) para forzar que el optimizador de consultas recompile un plan de consulta la próxima vez que se ejecute la misma consulta.In addition, use the OPTION (RECOMPILE) query hint to force the query optimizer to recompile a query plan the next time the same query is executed. Entonces, el optimizador tendrá estimaciones de cardinalidad precisas para GETDATE() y producirá un plan de consulta más eficaz.The optimizer will then have accurate cardinality estimates for GETDATE() and will produce a more efficient query plan.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');   
SELECT * FROM t    
WHERE c1 > @dt OPTION (RECOMPILE);  
  

EjemplosExamples

En los ejemplos siguientes se usan las seis funciones del sistema de SQL ServerSQL Server que devuelven la fecha y hora actuales para devolver la fecha, la hora o ambas.The following examples use the six SQL ServerSQL Server system functions that return current date and time to return the date, time, or both. Los valores se devuelven en serie; por consiguiente, sus fracciones de segundo podrían ser diferentes.The values are returned in series; therefore, their fractional seconds might be different.

A.A. Obtener la fecha y hora actuales del sistemaGetting the current system date and time

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

El conjunto de resultados es el siguiente:Here is the result set.

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.B. Obtener la fecha actual del sistemaGetting the current system 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:Here is the result set.

SYSDATETIME()          2007-05-03  
SYSDATETIMEOFFSET()    2007-05-03  
SYSUTCDATETIME()       2007-05-04  
CURRENT_TIMESTAMP      2007-05-03  
GETDATE()              2007-05-03  
GETUTCDATE()           2007-05-04

C.C. Obtener la hora actual del sistemaGetting the current system time

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

El conjunto de resultados es el siguiente:Here is the result set.

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 (SQL DW)Azure Synapse Analytics (SQL DW) y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) and Almacenamiento de datos paralelosParallel Data Warehouse

En estos ejemplos se usan las tres funciones del sistema SQL ServerSQL Server que devuelven la fecha y hora actuales para devolver la fecha, la hora o ambas.The following examples use the three SQL ServerSQL Server system functions that return current date and time to return the date, time, or both. Los valores se devuelven en serie; por consiguiente, sus fracciones de segundo podrían ser diferentes.The values are returned in series; therefore, their fractional seconds might be different.

D.D. Obtener la fecha y hora actuales del sistemaGetting the current system date and time

SELECT SYSDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE();  

E.E. Obtener la fecha actual del sistemaGetting the current system date

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE());  
  

F.F. Obtener la hora actual del sistemaGetting the current system time

SELECT CONVERT (time, SYSDATETIME())  
    ,CONVERT (time, CURRENT_TIMESTAMP)  
    ,CONVERT (time, GETDATE());  
  

Consulte tambiénSee Also

CAST y CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)