I Oracle Database, RM
formatelement låter dig returnera månaden i romerska siffror när du använder TO_CHAR()
funktion.
Du kan också använda fm
modifierare för att undertrycka eventuell utfyllnad.
Exempel
Här är ett exempel att visa:
SELECT
TO_CHAR(date '2030-04-08', 'DD-RM-YYYY')
FROM DUAL;
Resultat:
08-IV -2030
I det här fallet är månadsnumret 04
, och den romerska siffrans ekvivalent är IV
.
Små bokstäver vs versaler
Du kan använda rm
(med gemener) för att returnera de romerska siffrorna med gemener:
SELECT
TO_CHAR(date '2030-04-08', 'DD-rm-YYYY')
FROM DUAL;
Resultat:
08-iv -2030
Ta bort stoppning
Som standard är månaden fylld med efterföljande ämnen till längden 4, vilket är längden på viii
. Vi kan se det i exemplen ovan.
För att undertrycka stoppningen, använd fm
formatmodifierare:
SELECT
TO_CHAR(date '2030-04-08', 'DD-fmRM-YYYY')
FROM DUAL;
Resultat:
08-IV-2030
Observera att detta kommer att undertrycka all utfyllnad från alla efterföljande element. I vårt fall kommer stoppningen också att försvinna från och med året. Om vårt år är mindre än fyra siffror långt, kommer det inte att ha några inledande nollor:
SELECT
TO_CHAR(date '0030-04-08', 'DD-fmRM-YYYY')
FROM DUAL;
Resultat:
08-IV-30
Om vi vill behålla de inledande nollorna kan vi prefixet YYYY
med fm
:
SELECT
TO_CHAR(date '0030-04-08', 'DD-fmRM-fmYYYY')
FROM DUAL;
Resultat:
08-IV-0030
fm
modifieraren fungerar effektivt som en omkopplare som aktiverar/inaktiverar fyllningsläget.
Om vi vill dämpa all utfyllnad i datumet kan vi helt enkelt lägga till hela formatmodellen med en enda fm
:
SELECT
TO_CHAR(date '0030-04-08', 'fmDD-RM-YYYY')
FROM DUAL;
Resultat:
8-IV-30