No Oracle Database, ao usar o
TO_CHAR()
função para retornar o nome do dia de uma data, o preenchimento será acrescentado ao nome do dia se for menor que o nome do dia válido mais longo para o idioma e calendário fornecidos. Bem, esse é o comportamento padrão. No entanto, você pode alterar isso se desejar.
Para suprimir esse preenchimento, tudo o que você precisa fazer é preceder o elemento de formato do nome do dia com
fm
. Exemplo
Suponha que executemos o seguinte código:
SELECT
TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;
Resultado:
Friday , 08 March 2030
Podemos ver que os espaços à direita foram anexados ao nome do dia e ao nome do mês.
Podemos usar o
fm
modificador de formato para suprimir este espaço:SELECT
TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;
Resultado:
Friday, 8 March 2030
Problema resolvido.
Observe que isso também teve o benefício colateral de suprimir os espaços à direita do nome do mês.
Também suprimiu o zero à esquerda do número do dia.
Podemos usar vários
fm
modificadores para ser mais específico sobre qual preenchimento queremos suprimir. Cada fm
em nosso modelo de formato ativa e desativa o modo de preenchimento. Suponha que queremos suprimir os espaços à direita dos nomes de dia e mês, mas queremos manter o zero à esquerda no número do dia. Nesse caso podemos fazer o seguinte:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;
Resultado:
Friday , 08 March 2030
O motivo pelo qual usamos um terceiro
fm
(na frente de MONTH
) é porque o segundo fm
preenchimento reativado para todos os elementos de formato subsequentes, o que resultaria na retenção dos espaços à direita para o mês. Aqui está o que quero dizer:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;
Resultado:
Friday, 08 March 2030
Nesse caso, o preenchimento foi suprimido do nome do dia e, em seguida, reativado para o número do dia, mês e ano.
Felizmente, podemos adicionar quantos
fm
modificadores conforme precisamos para obter o resultado desejado.