Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да премахнете правилната подплата в името на деня в Oracle

В Oracle Database, когато използвате TO_CHAR() функция за връщане на името на деня от дата, запълването ще бъде добавено към името на деня, ако е по-кратко от най-дългото валидно име на деня за дадения език и календар.

Е, това е поведението по подразбиране. Можете обаче да промените това, ако желаете.

За да потиснете това запълване, всичко, което трябва да направите, е да добавите предварително елемента за формат на името на деня с fm .

Пример

Да предположим, че изпълняваме следния код:

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

Резултат:

Friday   , 08 March     2030

Можем да видим, че крайните интервали са добавени към името на деня и името на месеца.

Можем да използваме fm модификатор на формат за потискане на това пространство:

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

Резултат:

Friday   , 08 March     2030

Проблемът е решен.

Забележете, че това има и страничната полза от потискането на крайните интервали от името на месеца.

Той също така потисна водещата нула от номера на деня.

Можем да използваме множество fm модификатори, за да бъдем по-конкретни за това кое запълване искаме да потиснем. Всеки fm в нашия формат модел включва и изключва режима на запълване.

Да предположим, че искаме да потиснем крайните интервали от имената на дните и месеца, но искаме да запазим водещата нула на номера на деня. В този случай можем да направим следното:

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

Резултат:

Friday   , 08 March     2030

Причината да използваме трети fm (пред MONTH ) е защото вторият fm активира повторно подпълване за всички следващи елементи на формат, което ще доведе до запазване на крайните интервали за месеца.

Ето какво имам предвид:

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

Резултат:

Friday, 08 March     2030 

В този случай допълването беше потиснато от името на деня и след това беше активирано отново за номера на деня, месеца и годината.

За щастие можем да добавим толкова fm модификатори, както са ни необходими, за да постигнем желания резултат.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle позволява ли опцията за четене без ангажимент?

  2. Функция JSON_TABLE() в Oracle

  3. Опитът да експортирате Oracle чрез PL/SQL дава дата 0000-00-00

  4. Използване на LIKE в клауза IN на Oracle

  5. Стъпка по стъпка процес на надграждане до R12.2 Надстройка част -2 (Главен драйвер за надстройка за R12.2.0)