In Oracle Database, quando si utilizza TO_CHAR()
funzione per restituire il nome del giorno da una data, il riempimento verrà aggiunto al nome del giorno se è più breve del nome del giorno più lungo valido per la lingua e il calendario indicati.
Bene, questo è il comportamento predefinito. Tuttavia, puoi modificarlo se lo desideri.
Per eliminare questo riempimento, tutto ciò che devi fare è anteporre l'elemento del formato del nome del giorno con fm
.
Esempio
Supponiamo di eseguire il codice seguente:
SELECT
TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;
Risultato:
Friday , 08 March 2030
Possiamo vedere che gli spazi finali sono stati aggiunti al nome del giorno e al nome del mese.
Possiamo usare il fm
modificatore di formato per eliminare questo spazio:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;
Risultato:
Friday, 8 March 2030
Problema risolto.
Si noti che questo ha anche il vantaggio collaterale di sopprimere gli spazi finali dal nome del mese.
Ha anche soppresso lo zero iniziale dal numero del giorno.
Possiamo usare più fm
modificatori per essere più specifici su quale riempimento vogliamo sopprimere. Ogni fm
nel nostro modello di formato attiva e disattiva la modalità di riempimento.
Supponiamo di voler sopprimere gli spazi finali dai nomi di giorno e mese, ma di voler mantenere lo zero iniziale sul numero del giorno. In tal caso possiamo fare quanto segue:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;
Risultato:
Friday , 08 March 2030
Il motivo per cui abbiamo usato un terzo fm
(davanti a MONTH
) è perché il secondo fm
riattivato il riempimento per tutti gli elementi di formato successivi, il che avrebbe comportato la conservazione degli spazi finali per il mese.
Ecco cosa intendo:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;
Risultato:
Friday, 08 March 2030
In questo caso, il riempimento è stato eliminato dal nome del giorno e quindi riattivato per il numero del giorno, il mese e l'anno.
Fortunatamente, possiamo aggiungere altrettanti fm
modificatori di cui abbiamo bisogno per ottenere il risultato desiderato.