PostgreSQL TO_CHAR (formatação de datas)
As funções de data do PostgreSQL, tais como `TO_CHAR`, são utilizadas para formatar datas e horas em uma representação textual específica. O `TO_CHAR` é particularmente útil para converter tipos de dados de data/hora em strings formatadas.
Uso
A função `TO_CHAR` é usada para transformar valores de data/hora em uma cadeia de caracteres com um formato específico, o que é especialmente útil para exibir datas de maneira amigável. Ele requer um valor de data/hora e uma string de formato que define o formato de saída desejado.
sql
TO_CHAR(date_value, 'format_string')
Nessa sintaxe, `date_value` é a data ou hora que você deseja formatar e `'format_string'` especifica como você deseja que ela apareça, usando padrões de formato específicos como `YYYY`, `MM`, `DD` etc. Observe que a `format_string` diferencia maiúsculas de minúsculas, o que é crucial para garantir a saída correta.
Exemplos
1. Formatação de data básica
sql
SELECT TO_CHAR(current_date, 'YYYY-MM-DD');
Essa consulta formata a data atual como uma cadeia de caracteres no formato `YYYY-MM-DD`, exibindo o ano, o mês e o dia completos.
2. Formatação personalizada de data e hora
sql
SELECT TO_CHAR(current_timestamp, 'DD Mon YYYY, HH12:MI AM');
Esse exemplo converte o carimbo de data/hora atual em um formato mais legível, exibindo o dia, o mês abreviado, o ano completo, a hora e os minutos com um indicador AM/PM.
3. Formatação com o nome do dia
sql
SELECT TO_CHAR(current_date, 'Day, DDth Month YYYY');
Esse exemplo formata a data para incluir o nome completo do dia, o dia com um sufixo ordinal e o nome completo do mês, criando uma cadeia de caracteres de data mais detalhada e legível por humanos.
Dicas e práticas recomendadas
- Escolha padrões de formato apropriados. Use padrões de formato que correspondam às suas preferências de localidade e público-alvo. Considere o uso de padrões que tratem os formatos de data internacionais de forma eficaz.
- Tenha cuidado com o acolchoamento. O padrão `TH` para sufixos ordinais e o `FM` para suprimir o preenchimento podem tornar as strings mais legíveis. O `FM` (modo de preenchimento) remove os espaços à esquerda e à direita, proporcionando uma saída mais limpa.
- Use para apresentação, não para armazenamento. O `TO_CHAR` deve ser usado para fins de apresentação; armazene datas em formatos padrão de data/hora.
- Teste as cadeias de formato. Sempre teste as cadeias de caracteres de formato para garantir que elas produzam a saída desejada, especialmente ao usar padrões complexos.
Erros comuns e solução de problemas
- Erros de sensibilidade de caso: Certifique-se de que seu `format_string` use o caso correto para cada padrão. Um erro comum é usar letras minúsculas onde são necessárias letras maiúsculas, o que leva a resultados inesperados.
- Exemplo de erro: Se você encontrar um erro como "function to_char(unknown, unknown) is not unique", verifique se `date_value` e `format_string` estão corretamente especificados e se são dos tipos esperados.
Além de datas, o `TO_CHAR` também pode formatar valores numéricos, aumentando sua versatilidade além da formatação de data/hora.