Como configurar o MySQL para exibir datas em português – Elias Praciano
Categories
Banco de dados Tutoriais

Como configurar o MySQL para exibir datas em português

O idioma da exibição dos nomes completos dos meses, dos dias da semana ou suas abreviações, no MySQL, são controlados pela variável lc_time_names. Esta variável afeta a saída das funções DATE_FORMAT(), DAYNAME() e MONTHNAME().

A variável lc_time_names não afeta o funcionamento das funções STR_TO_DATE() ou GET_FORMAT(), no MySQL

Os nomes dos locales, definidos na variável de ambiente de sistema lc_time_names devem conter o idioma e a região geográfica, de acordo com a lista do IANA.
O valor padrão desta variável é ‘en_US’, ou seja, english_United States (inglês dos Estados Unidos). Você está aqui, provavelmente por que deseja alterar este valor para português do Brasil ou de Portugal — cada um dos dois tem um valor específico correspondente:

  • pt_PT — português de Portugal ou português europeu
  • Pt_BR — português do Brasil

select date format in mysql
Você pode ver o valor atual da variável com o uso do comando SELECT, do MySQL:

SELECT @@lc_time_names;
_
+-----------------+
| @@lc_time_names |
+-----------------+
| pt_BR           |
+-----------------+
1 row in set (0.00 sec)

… e use o comando SET para alterar a variável:

SET lc_time_names = 'pt_BR';
_

Agora, faça o teste:

SELECT DATE_FORMAT('2020-08-06', '%d de %M de %Y');
_
+---------------------------------------------+
| DATE_FORMAT('2020-08-06', '%d de %M de %Y') |
+---------------------------------------------+
| 06 de agosto de 2020                        |
+---------------------------------------------+
1 row in set (0.00 sec)

O problema desta abordagem é que ela se perde ao fechar esta sessão do MySQL.
Para tornar a configuração permanente, use GLOBAL, deste jeito:

SET GLOBAL lc_time_names=pt_BR;
_

É preciso ter privilégios administrativos, no servidor MySQL, para poder usar SET GLOBAL.

Referências: http://dev.mysql.com/doc/refman/5.7/en/locale-support.html.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

4 replies on “Como configurar o MySQL para exibir datas em português”

Digitando:
SET lc_time_names=pt_BR;
SELECT
DATE_FORMAT(DATA, “%b”) AS mes,
SUM(quantidade * valor) AS total
FROM tb_fornecedor
WHERE EXTRACT(YEAR FROM DATA) = 2013
GROUP BY mes
ORDER BY DATE_FORMAT(DATA, ‘%m/%Y’);
No MySQL tem resultado:
| mes | total |
| Set | 585 |
| Out | 2700 |
| Nov | 3320 |

Como passar essa formatação para:
strSql = “SELECT data, extract(month from data) AS mes, extract(year from data) AS ano FROM tb_fornecedor”
set rssomapormesano=Server.CreateObject(“ADODB.RecordSet”)
rssomapormesano.Open strSql, cn

Se colocar o
SET lc_time_names=pt_BR mostra erro.
Obs; Ainda não está no site.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.