Convert Date SQL: Guia Completo para Converter Data no SQL
No universo do banco de dados relacional, trabalhar com datas é uma tarefa corriqueira e muitas vezes desafiadora. O uso de funções para converter e manipular datas no SQL é fundamental para garantir a integridade dos dados, facilitar consultas e otimizar processos.
Seja ao formatar uma data para exibição, ao fazer cálculos de intervalo ou ao realizar comparações específicas, o conhecimento sobre como converter datas no SQL é indispensável para desenvolvedores, analistas e administradores de banco de dados.

Neste guia completo, abordaremos as principais técnicas, funções e boas práticas para converter datas no SQL, além de responder às dúvidas mais frequentes e sugerir recursos externos relevantes.
Por que Converter Data no SQL?
Converter datas no SQL é necessário por várias razões, incluindo:
- Padronização de formatos: para exibir datas em formatos específicos, como DD/MM/YYYY ou MM-DD-YYYY.
- Manipulação de datas: calcular diferenças, adicionar ou subtrair dias, meses ou anos.
- Compatibilidade: integrar dados de diferentes fontes ou bancos de dados que usam formatos distintos.
- Filtragens avançadas: realizar consultas com base em partes específicas da data, como o mês ou o dia.
Principais Funções para Converter Data no SQL
Existem diversas funções dependendo do sistema gerenciador de banco de dados (SGBD) utilizado, como MySQL, SQL Server, PostgreSQL, entre outros. A seguir, abordaremos as funções mais comuns.
1. SQL Server
| Função | Descrição | Exemplo |
|---|---|---|
CONVERT() | Converte uma expressão de um tipo de dado para outro, incluindo datas | CONVERT(VARCHAR, GETDATE(), 103) (formato DD/MM/YYYY) |
FORMAT() | Formata uma data de acordo com o padrão especificado | FORMAT(GETDATE(), 'dd/MM/yyyy') |
Exemplos de conversão no SQL Server
-- Converter a data atual para o formato DD-MM-YYYYSELECT CONVERT(VARCHAR, GETDATE(), 105) AS DataFormatada;-- Formatar a data para exibição personalizadaSELECT FORMAT(GETDATE(), 'dd/MM/yyyy') AS DataPersonalizada;2. MySQL
| Função | Descrição | Exemplo |
|---|---|---|
DATE_FORMAT() | Formata uma data de acordo com o padrão desejado | DATE_FORMAT(NOW(), '%d/%m/%Y') |
STR_TO_DATE() | Converte uma string para data, usando um formato especificado | STR_TO_DATE('01-12-2023', '%d-%m-%Y') |
Exemplos de conversão no MySQL
-- Formatando a data atual para o padrão dia/mês/anoSELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y') AS DataFormatada;-- Convertendo uma string para dataSELECT STR_TO_DATE('25/12/2023', '%d/%m/%Y') AS DataConvertida;3. PostgreSQL
| Função | Descrição | Exemplo |
|---|---|---|
TO_CHAR() | Converte uma data para string com um formato específico | TO_CHAR(CURRENT_DATE, 'DD/MM/YYYY') |
TO_DATE() | Converte uma string para data, seguindo o formato dado | TO_DATE('01-12-2023', 'DD-MM-YYYY') |
Exemplos de conversão no PostgreSQL
-- Formatar a data atualSELECT TO_CHAR(CURRENT_DATE, 'DD/MM/YYYY') AS DataFormatada;-- Converter string para dataSELECT TO_DATE('15-11-2023', 'DD-MM-YYYY') AS DataConvertida;Como Converter Datas com Exemplos Práticos
Converter String para Data
No cenário em que recebemos uma data como string e é necessário convertê-la para o tipo de dado DATE, usamos funções específicas:
| Sistema | Função | Exemplo |
|---|---|---|
| MySQL | STR_TO_DATE() | STR_TO_DATE('31/12/2023', '%d/%m/%Y') |
| SQL Server | CONVERT() | CONVERT(DATE, '2023-12-31') |
| PostgreSQL | TO_DATE() | TO_DATE('31-12-2023', 'DD-MM-YYYY') |
Exemplo de conversão de data para outro formato
Para formatar uma data de forma personalizada para exibir em relatórios ou interfaces, usamos:
-- MySQLSELECT DATE_FORMAT(NOW(), '%d-%m-%Y') AS DataPersonalizada;-- SQL ServerSELECT FORMAT(GETDATE(), 'dd-MM-yyyy') AS DataPersonalizada;-- PostgreSQLSELECT TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY') AS DataPersonalizada;Adicionando ou Subtraindo Dias
Muitas vezes, é necessário calcular uma nova data baseando-se na data atual ou uma data específica. Confira exemplos:
| Sistema | Função | Exemplo |
|---|---|---|
| MySQL | DATE_ADD(), DATE_SUB() | DATE_ADD(CURDATE(), INTERVAL 7 DAY) |
| SQL Server | DATEADD() | DATEADD(day, 7, GETDATE()) |
| PostgreSQL | INTERVAL | CURRENT_DATE + INTERVAL '7 days' |
Boas Práticas ao Trabalhar com Datas no SQL
- Sempre utilize funções específicas do seu SGBD para garantir compatibilidade.
- Evite armazenar datas como strings. Prefira tipos de dados
DATE,DATETIMEouTIMESTAMP. - Use funções de formatação apenas na apresentação, deixando os dados internos em formato padrão.
- Documente o formato esperado ao importar ou exportar datas de fontes externas.
Perguntas Frequentes sobre Conveter Datas no SQL
1. Qual a diferença entre CONVERT() e CAST() no SQL Server?
CONVERT() oferece maior controle sobre o formato de saída ao permitir especificar estilos de conversão. Já CAST() realiza uma conversão básica entre tipos de dados. Por exemplo:
SELECT CAST(GETDATE() AS VARCHAR);SELECT CONVERT(VARCHAR, GETDATE(), 103); -- Formato DD/MM/YYYY2. Como converter uma data para o padrão ISO 8601 no SQL?
No SQL Server e PostgreSQL, é possível usar:
-- SQL ServerSELECT CONVERT(VARCHAR, GETDATE(), 126);-- PostgreSQLSELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD"T"HH24:MI:SS');3. É possível trabalhar com fusos horários ao converter datas no SQL?
Sim, mas depende do SGBD. Por exemplo, PostgreSQL possui funções específicas como AT TIME ZONE. No SQL Server, há suporte parcial com SWITCHOFFSET().
Conclusão
Converter datas no SQL é uma tarefa essencial para garantir a correta manipulação, exibição e análise de dados temporais. Compreender as funções disponíveis nas diferentes plataformas e suas aplicações práticas permite otimizar consultas, relatórios e integrações.
Lembre-se de sempre escolher o formato de armazenamento adequado, evitar o uso de strings para datas e realizar conversões apenas na camada de apresentação ou relatórios, visando boas práticas e eficiência.
Para aprofundar seus conhecimentos, consulte a documentação oficial do seu SGBD:
Referências
- https://learn.microsoft.com/en-us/sql/t-sql/functions/convert-transact-sql
- https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
- https://www.postgresql.org/docs/current/functions-formatting.html
- Como manipular e formatar datas em SQL
“Entender como converter e manipular datas no SQL é fundamental para garantir a integridade e a eficiência na gestão de dados temporais.”
MDBF