O
CURRENT_TIMESTAMP
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. Esta função é o ANSI SQL equivalente ao T-SQL
GETDATE()
função, para que você possa usar a que preferir. Observe que ambas as funções têm um intervalo de datas menor e uma precisão fracionária padrão menor do que o T-SQL SYSDATETIME()
função (que retorna um datetime2(7) valor). Este artigo fornece exemplos do
CURRENT_TIMESTAMP
função, incluindo como você pode usá-lo com outras funções para retornar o valor que você está interessado. Sintaxe
A sintaxe fica assim:
CURRENT_TIMESTAMP
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 CURRENT_TIMESTAMP
:SELECT CURRENT_TIMESTAMP AS Result;
Resultado:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
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, CURRENT_TIMESTAMP) AS Result;
Resultado:
+----------+ | Result | |----------| | 6 | +----------+
Aqui está outro exemplo usando o
MONTH()
função. O resultado é o mesmo. SELECT MONTH(CURRENT_TIMESTAMP) 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, CURRENT_TIMESTAMP) 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(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US', FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';
Resultado:
+------------+------------+-------------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-------------------------+--------------| | 6/16/2018 | 16/06/2018 | Saturday, June 16, 2018 | 16 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 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Resultado:
+----------+ | Result | |----------| | 30 | +----------+