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 deTIMESTAMP
, poisTIMESTAMP
pode ter limites menores em alguns bancos. - Evite cálculos diretos com datas armazenadas em formato de string, pois isso pode causar erros.
Quando utilizar a data atual no SQL?
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