sql >> Databáze >  >> RDS >> Oracle

Jak odstranit správné odsazení u názvu dne v Oracle

V databázi Oracle při použití TO_CHAR() Funkce pro vrácení názvu dne z data, bude k názvu dne přidána výplň, pokud je kratší než nejdelší platný název dne pro daný jazyk a kalendář.

No, to je výchozí chování. Pokud si to však přejete, můžete to změnit.

Chcete-li toto odsazení potlačit, vše, co musíte udělat, je přidat před prvek formátu názvu dne fm .

Příklad

Předpokládejme, že spustíme následující kód:

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

Výsledek:

Friday   , 08 March     2030

Vidíme, že k názvu dne a názvu měsíce byly připojeny koncové mezery.

Můžeme použít fm modifikátor formátu pro potlačení této mezery:

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

Výsledek:

Friday   , 08 March     2030

Problém vyřešen.

Všimněte si, že to mělo také vedlejší výhodu v potlačení koncových mezer z názvu měsíce.

Také to potlačilo úvodní nulu z čísla dne.

Můžeme použít více fm modifikátory, abychom byli konkrétnější ohledně toho, které výplně chceme potlačit. Každý fm v našem modelu formátu zapíná a vypíná režim plnění.

Předpokládejme, že chceme potlačit koncové mezery u názvů dnů a měsíců, ale chceme zachovat úvodní nulu v čísle dne. V takovém případě můžeme provést následující:

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

Výsledek:

Friday   , 08 March     2030

Důvod, proč jsme použili třetí fm (před MONTH ), protože druhý fm znovu povolil výplň pro všechny následující prvky formátu, což by vedlo k tomu, že koncové mezery byly zachovány po celý měsíc.

Zde je to, co mám na mysli:

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

Výsledek:

Friday, 08 March     2030 

V tomto případě bylo odsazení u názvu dne potlačeno a poté znovu povoleno pro číslo dne, měsíc a rok.

Naštěstí můžeme přidat tolik fm modifikátory, protože potřebujeme získat požadovaný výsledek.


  1. Jak změnit symbol měny relace v Oracle

  2. Co byste měli vědět o webech založených na databázi

  3. Modul Pythonu cx_Oracle modul nebyl nalezen

  4. Definování vztahu jedna ku jedné v SQL Server