O
GETDATE()
função retorna a data e hora atuais como um datetime valor. Esse valor é derivado do sistema operacional do computador em que a instância do SQL Server está sendo executada. Este artigo fornece exemplos do método
GETDATE()
função, incluindo como você pode usá-lo com outras funções para retornar o valor que você está interessado. Sintaxe
Primeiro, aqui está a sintaxe:
GETDATE ( )
Então você simplesmente chama essa função sem nenhum argumento.
Exemplo
Aqui está um exemplo básico de como usar um
SELECT
instrução para retornar a data e hora atuais de GETDATE()
:SELECT GETDATE() AS Result;
Resultado:
+-------------------------+ | Result | |-------------------------| | 2018-06-15 23:54:42.013 | +-------------------------+
Então, como mencionado, ele retorna um datetime valor. Se você quiser um valor com precisão fracionária de mais segundos, use
SYSDATETIME()
em vez de. Essa função retorna um datetime2 valor. Extrair uma parte da data
Se você quiser apenas uma parte do valor de retorno, você pode usar
DATEPART()
para retornar apenas a parte da data/hora em que você está interessado. Exemplo:
SELECT DATEPART(month, GETDATE()) AS Result;
Resultado:
+----------+ | Result | |----------| | 6 | +----------+
Às vezes, há mais de uma maneira de obter o mesmo resultado no SQL Server. Aqui está outro exemplo usando o
MONTH()
função:SELECT MONTH(GETDATE()) AS Result;
Resultado:
+----------+ | Result | |----------| | 6 | +----------+
Ambas as funções retornam o mês atual. Mas eles os retornam como um número inteiro representando o número do mês.
Se você quiser o mês nome retornado, você pode usar
DATENAME()
:SELECT DATENAME(month, GETDATE()) AS Result;
Resultado:
+----------+ | Result | |----------| | June | +----------+
Formatar a data
Você também pode usar outras funções T-SQL para formatar a data conforme necessário.
Aqui está um exemplo de uso do
FORMAT()
função para formatar o resultado:SELECT FORMAT(GETDATE(), 'd', 'en-US') AS 'd, en-US', FORMAT(GETDATE(), 'd', 'en-gb') AS 'd, en-gb', FORMAT(GETDATE(), 'D', 'en-US') AS 'D, en-US', FORMAT(GETDATE(), 'D', 'en-gb') AS 'D, en-gb';
Resultado:
+------------+------------+-----------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-----------------------+--------------| | 6/15/2018 | 15/06/2018 | Friday, June 15, 2018 | 15 June 2018 | +------------+------------+-----------------------+--------------+
Mais exemplos em Como formatar a data e a hora no SQL Server.
Incrementando o valor e encontrando a diferença
Você pode usar funções como
DATEDIFF()
para retornar a diferença entre a data atual e outra data. Aqui está um exemplo de uso de
DATEADD()
para adicionar um mês à data atual, descobrindo a diferença em dias:DECLARE @date1 datetime2 = GETDATE(); DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE()); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Resultado:
+----------+ | Result | |----------| | 30 | +----------+