Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Exemplos de CURRENT_TIMESTAMP no SQL Server (T-SQL)


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       |
+----------+