Como pegar a data atual no SQL?

As funções NOW(), CURRENT_DATE e GETDATE() permitem obter a data e hora atual no SQL, sendo úteis para registros e cálculos temporais.

Como pegar a data atual no SQL?

Obter a data atual no SQL é fundamental para sistemas que registram logs, processam transações ou definem prazos. Diferentes bancos de dados possuem funções específicas para isso.

Obtendo a data e hora atual no MySQL

No MySQL, usamos a função NOW() para obter a data e hora do sistema:

SELECT NOW() AS data_hora_atual;

Isso retorna algo como 2024-03-01 14:30:00.

Se quisermos apenas a data sem a hora, usamos CURRENT_DATE():

SELECT CURRENT_DATE() AS data_atual;

O resultado será 2024-03-01.

Obtendo a data atual no PostgreSQL

No PostgreSQL, utilizamos CURRENT_TIMESTAMP para obter a data e hora:

SELECT CURRENT_TIMESTAMP AS data_hora_atual;

Para obter apenas a data:

SELECT CURRENT_DATE AS data_atual;

Obtendo a data no SQL Server

No SQL Server, utilizamos GETDATE():

SELECT GETDATE() AS data_hora_atual;

Se precisarmos apenas da data sem a hora, utilizamos CAST():

SELECT CAST(GETDATE() AS DATE) AS data_atual;

Usando funções de fuso horário

Alguns bancos permitem ajustar fusos horários, como o PostgreSQL:

SELECT NOW() AT TIME ZONE 'UTC' AS data_utc;

Isso garante que a data seja ajustada para o fuso horário correto.

Cuidados ao trabalhar com datas no SQL

  • O formato pode variar dependendo do banco de dados, então sempre valide a saída.
  • Se precisar armazenar datas futuras ou passadas, prefira o tipo DATETIME em vez de TIMESTAMP, pois TIMESTAMP pode ter limites menores em alguns bancos.
  • Evite cálculos diretos com datas armazenadas em formato de string, pois isso pode causar erros.

Obter a data atual no SQL é uma necessidade comum em aplicações que lidam com registros de tempo, como logs de sistema, processamento de pagamentos e gerenciamento de prazos. O uso de funções como NOW() e CURRENT_DATE() garante que os registros sejam feitos corretamente, evitando erros de inconsistência nos dados. Além disso, para aplicações internacionais, o ajuste de fusos horários é essencial para garantir que usuários em diferentes regiões tenham registros corretos. Em bancos de dados que oferecem suporte a fusos, sempre verifique qual é o padrão utilizado no servidor.

Algumas aplicações:

  • Registrar logs de acesso em sistemas
  • Marcar a data de criação de registros
  • Calcular prazos de vencimento e expiração
  • Gerenciar transações e históricos de pedidos
  • Filtrar registros por data de criação

Dicas para quem está começando

  • Use NOW() no MySQL para obter data e hora
  • No PostgreSQL, prefira CURRENT_TIMESTAMP
  • Para SQL Server, utilize GETDATE()
  • Se precisar apenas da data, use CURRENT_DATE
  • Ajuste fusos horários quando necessário para garantir consistência nos registros

Contribuições de Rodrigo Martins

Compartilhe este tutorial: Como pegar a data atual no SQL?

Compartilhe este tutorial

Continue aprendendo:

Como adicionar ou subtrair dias de uma data no SQL?

As funções DATE_ADD, DATE_SUB e INTERVAL permitem somar ou subtrair dias de uma data no SQL, facilitando cálculos e manipulações temporais.

Tutorial anterior

Como formatar datas no SQL?

As funções DATE_FORMAT, TO_CHAR e FORMAT permitem formatar datas no SQL, ajustando o formato para exibição e relatórios.

Próximo tutorial