Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como remover o preenchimento correto no nome do dia no Oracle


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.