Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL TO_CHAR

A função `TO_CHAR` do PostgreSQL é utilizada para converter vários tipos de dados, como datas e números, em strings formatadas. É útil quando são necessárias representações específicas de cadeias de caracteres de valores de dados para exibição ou processamento posterior.

Uso

A função `TO_CHAR` é normalmente usada quando você precisa formatar datas, horas ou números em um padrão ou formato específico. É essencial em relatórios e interfaces de usuário em que é necessária uma formatação consistente.

TO_CHAR(value, format);

Nessa sintaxe, `value` é o tipo de dados que você deseja formatar e `format` é uma cadeia de caracteres que especifica o formato de saída desejado.

Exemplos

1. Formatação de data básica

SELECT TO_CHAR(NOW(), 'YYYY-MM-DD');

Este exemplo formata a data e a hora atuais em uma cadeia de caracteres com o formato `YYYY-MM-DD`, mostrando apenas a parte da data. Aqui:

  • `YYYY` é o ano com quatro dígitos.
  • `MM` é o mês com dois dígitos.
  • `DD` é o dia com dois dígitos.

2. Formatação de números

SELECT TO_CHAR(12345.67, 'FM99999.00');

Aqui, o número `12345.67` é formatado como uma cadeia de caracteres com duas casas decimais, resultando em `12345.67`. O prefixo `FM` remove os espaços iniciais.

3. Formatação de data e hora

SELECT TO_CHAR(TIMESTAMP '2023-10-10 15:30:00', 'Day, DDth Month YYYY HH12:MI AM');

Esse exemplo formata um carimbo de data/hora específico em um formato mais legível, resultando em uma string como `Tuesday, 10th October 2023 03:30 PM`. Os componentes usados aqui incluem:

  • `Day` para o nome completo do dia da semana.
  • `DDth` para o dia do mês com um sufixo ordinal (por exemplo, `10th`).
  • `Month` para o nome completo do mês.
  • `HH12` para a hora no formato de 12 horas.
  • `MI` para minutos.
  • `AM` para o indicador ante meridiem.

4. Formatação de intervalos

SELECT TO_CHAR(INTERVAL '1 year 2 months 3 days', 'YYYY "years" MM "months" DD "days"');

Este exemplo formata um intervalo em uma string descritiva, resultando em `1 years 02 months 03 days`.

Dicas e práticas recomendadas

  • Use formatos significativos. Certifique-se de que a cadeia de formato usada seja clara e transmita o significado pretendido aos usuários.
  • Aproveite o modificador de FM. Use `FM` para suprimir zeros e espaços à esquerda indesejados para uma saída mais limpa.
  • Formatação consistente. Aplique formatos consistentes em consultas semelhantes para manter a uniformidade em aplicativos e relatórios.
  • Validar padrões de formato. Teste os padrões de formato para garantir que eles produzam os resultados esperados em diferentes cenários.
  • Evite formatação excessiva. Mantenha a formatação simples para evitar confusão, especialmente quando a cadeia de caracteres for interpretada por usuários ou outros sistemas.
  • Considerações sobre o desempenho. Tenha em mente o desempenho ao usar `TO_CHAR` com grandes conjuntos de dados, pois a formatação complexa pode afetar o tempo de execução da consulta.
  • Armadilhas comuns. Certifique-se de que as cadeias de formato estejam corretas para evitar resultados inesperados. Preste atenção à distinção entre maiúsculas e minúsculas e ao uso correto dos elementos de formatação.

Mensagens de erro comuns

  • Especificador de formato inválido: Certifique-se de que todos os especificadores de formato na função `TO_CHAR` estejam escritos corretamente e sejam aplicáveis ao tipo de dados que está sendo formatado.
  • Tipo não suportado para formatação: Nem todos os tipos de dados podem ser formatados diretamente com `TO_CHAR`; certifique-se de que o tipo de dados seja compatível.