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

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Retorna o carimbo de data/hora do sistema do banco de dados atual como um valor de datetime sem o deslocamento de fuso horário do banco de dados.Returns the current database system timestamp as a datetime value without the database time zone offset. Esse valor é derivado do sistema operacional do computador no qual a instância do SQL ServerSQL Server está sendo executada.This value is derived from the operating system of the computer on which the instance of SQL ServerSQL Server is running.

Observação

SYSDATETIME e SYSUTCDATETIME têm mais precisão de segundos fracionários que GETDATE e GETUTCDATE.SYSDATETIME and SYSUTCDATETIME have more fractional seconds precision than GETDATE and GETUTCDATE. SYSDATETIMEOFFSET inclui o deslocamento de fuso horário do sistema.SYSDATETIMEOFFSET includes the system time zone offset. SYSDATETIME, SYSUTCDATETIME e SYSDATETIMEOFFSET podem ser atribuídos a uma variável de qualquer um dos tipos de data e hora.SYSDATETIME, SYSUTCDATETIME, and SYSDATETIMEOFFSET can be assigned to a variable of any of the date and time types.

Para obter uma visão geral das funções e dos tipos de dados de data e hora de Transact-SQLTransact-SQL, confira Funções e tipos de dados de data e 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).

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

GETDATE ( )  

Tipo de retornoReturn Type

datetimedatetime

RemarksRemarks

Instruções Transact-SQLTransact-SQL podem se referir a GETDATE sempre que puderem fazer referência a uma expressão datatime.Transact-SQLTransact-SQL statements can refer to GETDATE anywhere they can refer to a datetime expression.

GETDATE é uma função não determinística.GETDATE is a nondeterministic function. Exibições e expressões que fazem referência a essa função em uma coluna não podem ser indexadas.Views and expressions that reference this function in a column cannot be indexed.

Usar SWITCHOFFSET com a função GETDATE() pode fazer com que a consulta seja executada de forma mais lenta porque o otimizador de consulta não é capaz de obter estimativas de cardinalidade para o 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. É recomendável que você pré-calcule o valor de GETDATE e depois especifique esse valor na consulta, como mostrado no exemplo a seguir.We recommend that you precompute the GETDATE value and then specify that value in the query as shown in the following example. Além disso, use a dica de consulta OPTION (RECOMPILE) para forçar o otimizador de consulta a recompilar um plano de consulta da próxima vez que a mesma consulta for executada.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. O otimizador terá, então, estimativas de cardinalidade precisas para GETDATE() e produzirá um plano de consulta mais eficiente.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);  
  

ExemplosExamples

Os exemplos a seguir usam as seis funções de sistema do SQL ServerSQL Server que retornam a data e a hora atuais para retornar a data, a hora ou 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. Os valores são retornados em série; portanto, seus segundos fracionários podem ser diferentes.The values are returned in series; therefore, their fractional seconds might be different.

A.A. Obtendo a data e a hora atuais do sistemaGetting the current system date and time

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

Aqui está o conjunto de resultados.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. Obtendo a data atual do 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());  
  

Aqui está o conjunto de resultados.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. Obtendo a hora atual do 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());  
  

Aqui está o conjunto de resultados.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  

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

Os exemplos a seguir usam as três funções do sistema do SQL ServerSQL Server que retornam a data e a hora atuais para retornar a data, a hora ou 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. Os valores são retornados em série; portanto, seus segundos fracionários podem ser diferentes.The values are returned in series; therefore, their fractional seconds might be different.

D.D. Obtendo a data e a hora atuais do sistemaGetting the current system date and time

SELECT SYSDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE();  

E.E. Obtendo a data atual do sistemaGetting the current system date

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

F.F. Obtendo a hora atual do sistemaGetting the current system time

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

Consulte TambémSee Also

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