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

Exemplos de SYSDATETIME() no SQL Server (T-SQL)


O SYSDATETIME() A função retorna a data e hora atuais como datetime2(7) 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 SYSDATETIME() 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:
SYSDATETIME ( )

Portanto, esta função não aceita nenhum argumento. Você simplesmente o chama 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 SYSDATETIME() :
SELECT SYSDATETIME() AS Result;

Resultado:
+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-06-15 23:09:13.5852199 |
+-----------------------------+

Então, como mencionado, ele retorna um datetime2(7) valor. O datetime2 o tipo de dados tem um período maior e uma precisão fracionária padrão maior do que o datetime tipo de dados (que é o tipo de dados que GETDATE() retorna – veja SYSDATETIME() vs GETDATE():Qual é a diferença?).

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, SYSDATETIME()) 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(SYSDATETIME()) AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 6        |
+----------+

Ambas as funções retornaram o mês atual. Mas eles os retornaram 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, SYSDATETIME()) 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(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US',
    FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US',
    FORMAT(SYSDATETIME(), '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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 30       |
+----------+