select date format in mysql

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.

Publicado por

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 thoughts on “Como configurar o MySQL para exibir datas em português”

  1. 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.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *