sql >> Database >  >> RDS >> Oracle

Hoe de juiste opvulling op de dagnaam in Oracle te verwijderen

In Oracle Database, bij gebruik van de TO_CHAR() functie om de dagnaam van een datum te retourneren, opvulling wordt toegevoegd aan de dagnaam als deze korter is dan de langst geldige dagnaam voor de opgegeven taal en kalender.

Welnu, dat is het standaardgedrag. U kunt dit echter desgewenst wijzigen.

Om deze opvulling te onderdrukken, hoeft u alleen maar fm voor het dagnaam-formaatelement te plaatsen .

Voorbeeld

Stel dat we de volgende code uitvoeren:

SELECT 
    TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;

Resultaat:

Friday   , 08 March     2030

We kunnen zien dat er spaties achteraan zijn toegevoegd aan de naam van de dag en de naam van de maand.

We kunnen de fm . gebruiken formaatmodifier om deze ruimte te onderdrukken:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;

Resultaat:

Friday, 8 March 2030

Probleem opgelost.

Merk op dat dit ook als bijkomend voordeel had dat de volgspaties van de maandnaam werden onderdrukt.

Het onderdrukte ook de voorloopnul van het dagnummer.

We kunnen meerdere fm . gebruiken modifiers om specifieker te zijn over welke opvulling we willen onderdrukken. Elke fm in ons formaatmodel schakelt de vulmodus aan en uit.

Stel dat we de volgspaties van de dag- en maandnamen willen onderdrukken, maar de voorloopnul op het dagnummer willen behouden. In dat geval kunnen we het volgende doen:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;

Resultaat:

Friday   , 08 March     2030

De reden waarom we een derde fm hebben gebruikt (voor MONTH ) is omdat de tweede fm opvulling opnieuw ingeschakeld voor alle volgende indelingselementen, wat ertoe zou leiden dat de volgspaties voor de maand behouden blijven.

Dit is wat ik bedoel:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;

Resultaat:

Friday, 08 March     2030 

In dit geval werd de opvulling van de dagnaam onderdrukt en vervolgens weer ingeschakeld voor het dagnummer, de maand en het jaar.

Gelukkig kunnen we zoveel fm . toevoegen modifiers die we nodig hebben om het gewenste resultaat te krijgen.


  1. Informatie over de information_schema database in MySQL

  2. PDO mysql:Hoe weet ik of het invoegen gelukt is?

  3. Best practices voor back-ups voor MySQL, MariaDB en Galera Cluster

  4. Postgresql-socketfout op OSX 10.7.3 bij het uitvoeren van Django's syncdb