Formatar Datas no MySQL, PostgreSQL e SQL Server
Vamos tratar neste artigo sobre como formatar datas no MySQL, PostgreSQL e SQL Server. Essa necessidade é muito comum quando gravamos datas em campos do tipo Date que geralmente está no formato internacional (yyyy-mm-dd) e vamos exibir para o usuário no formato brasileiro (dd/mm/yyyy).
Pessoalmente já me acostumei com o formato estrangeiro mas os usuários em geral reclamam demais se exibirmos datas assim “2015-12-25” (Natal). Existe ainda programadores que criam campos para armazenar datas em VARCHAR e formatam a data no formato brasileiro antes de gravar, isso pode causar problemas sérios quando necessitamos ordenar registros por data ou até executar consultas baseadas em Dias, Meses ou Anos.
Isso porque o valor do campo é texto e fica difícil extrair dados específicos referente a data, então fica a dica “campo para armazenar data tem que ser do tipo DATE“, abaixo vou demonstrar como formatar essas datas para o usuário no MySQL, PostgreSQL e SQL Server, mas praticamente todos os SGBDs do mercado possuem funções para esse tipo de prática.
Formatar datas no MySQL
No MySQL, vamos usar a função DATE_FORMAT(date, format) que recebe 2 parâmetros, sendo o primeiro parâmetro a data (tipo Date) que precisamos formatar e o segundo parâmetro o formato que queremos de saída. No exemplo abaixo uso a função a CURRENT_DATE() para capturar a data do sistema YYYY-MM-DD e formato a saída para DD/MM/YYYY.
1 |
SELECT DATE_FORMAT(CURRENT_DATE(), "%d/%m/%Y") AS DATA_FORMATADA |
Formatar datas no PostgreSQL
No PostgreSQL, vamos usar a função TO_CHAR(timestamp, text) que recebe 2 parâmetros, sendo o primeiro parâmetro a data (tipo Timestamp ou Date) que precisamos formatar e o segundo parâmetro é o formato que queremos na saída. No exemplo abaixo uso a função a CURRENT_DATE para capturar a data do sistema YYYY-MM-DD e formato a saída para DD/MM/YYYY.
1 |
SELECT TO_CHAR(CURRENT_DATE, 'DD/MM/YYYY') AS DATA_FORMATADA |
Formatar datas no SQL Server 2008
No SQL Server, vamos usar a função CONVERT(data_type, expression, style) que recebe 3 parâmetros e serve para fazer conversões entre diversos tipos de dados, o primeiro parâmetro é o data_type para o qual precisamos converter, nesse caso vamos exibir a data como VARCHAR, o segundo parâmetro nesse exemplo é a data (tipo Date) que precisamos formatar e o terceiro parâmetro é o style ou código do formato que queremos na saída, nessa página é possível visualizar os formatos e seu respectivos códigos. No exemplo abaixo uso a função a GETDATE() para capturar a data do sistema YYYY-MM-DD e formato a saída para DD/MM/YYYY.
1 |
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS DATA_FORMATADA |
Bom pessoal, hoje meu objetivo foi deixar algumas dicas de formatação de datas, visto que esse tipo de dúvida é muito comum nos fóruns da WEB. Com isso podemos dar fim na “gambiarra” de formatar a data antes de gravar em um campo VARCHAR e depois ficar sofrendo para ordenar os registros.
Até a próxima …