Database
 sql >> Base de Dados >  >> RDS >> Database

Como obter a data e hora atuais (sem fuso horário) no T-SQL

Problema:


Você gostaria de obter a data e hora atuais no T-SQL, mas não deseja o deslocamento do fuso horário.

Solução:


Usaremos GETDATE(), CURRENT_TIMESTAMP e SYSDATETIME() para obter a data e hora atuais sem o deslocamento de fuso horário. As duas primeiras funções nos permitem obter a hora atual com menor precisão. (GETDATE() é uma função T-SQL, enquanto CURRENT_TIMESTAMP é uma função SQL Standard; ambas as funções retornam o mesmo tipo de dados). A terceira função, SYSDATETIME(), obtém um tempo de maior precisão.
SELECT CURRENT_TIMESTAMP ;

Segue o resultado da consulta:
2019-08-14 10:01:06.983

Discussão:


Em um banco de dados SQL Server, o CURRENT_TIMESTAMP A função retorna a data e hora atuais (ou seja, a hora na máquina em que a instância do SQL Server é executada) como um datetime tipo de dados. Datetime é um tempo de menor precisão que tem um máximo de três segundos fracionários. (No nosso exemplo, isso é 983.)

GETDATE() é semelhante ao CURRENT_TIMESTAMP e retorna o mesmo resultado. A diferença é que CURRENT_TIMESTAMP é o padrão SQL, enquanto GETDATE() é específico do SQL Server.
SELECT GETDATE() ;

Claro, se você deseja obter uma data e hora atuais de maior precisão sem um deslocamento de fuso horário, você pode usar a função SYSDATETIME(). Esta função retorna um datetime2 tipo de dados com sete segundos fracionários. Veja o exemplo abaixo:
SELECT SYSDATETIME() ;

Aqui está o resultado:
2019-08-14 10:01:06.9754163