Trabalhando com a data e hora atual do servidor SQL Server

O SQL Server oferece 3 comandos para visualizarmos a data e hora atual do servidor:

  • CURRENT_TIMESTAMP: retorna a data e hora como um valor datetime e sem o deslocamento de fuso horário do banco de dados. Esse valor é derivado do sistema operacional do computador no qual a instância do SQL Server está sendo executada.

  • GETDATE(): retorna a data e hora como um valor datetime e sem o deslocamento de fuso horário do banco de dados. Esse valor é derivado do sistema operacional do computador no qual a instância do SQL Server está sendo executada. Sim!!! É a mesma definição utilizada para CURRENT_TIMESTAMP.

  • {fn NOW()}: é uma função canônica ODBC, que pode ser usado em comandos T-SQL uma vez que o fornecedor do driver de OLE DB fornecça suporte para o SQL Server.

Analisando cuidadosamente, os três comandos são iguais. Não existe uma diferença notável na performance do SQL Server usando um outro. No fim das contas, a maioria acaba utilizando o GETDATE(), já que é o mais conhecido entre eles.

Executando estes comandos no SQL Server 2008 até o 2016, vemos que o resultado é realmente o mesmo.

Uma situação interessante que eu descobri entre CURRENT_TIMESTAMP e GETDATE() foi essa:

Observem este script. Embora as colunas ColunaA e Coluna C foram definidas com o valor default de CURRENT_TIMESTAMP, o SQL Server armazena a função GETDATE() na estrutura da tabela. E esse resultado também é apresentado na geração do script da tabela, além do retorno da função sp_help.

Então, depois de pensar muito, por aproximadamente, 0,0001 segundo, optei por continuar a usar o GETDATE() mesmo. Por que? Eu gosto de escrever GETDATE()...

Posts Em Destaque
Posts Recentes
Arquivo
Procurar por tags