In Oracle Database können Sie den fm
verwenden (Füllmodus) Formatmodifikator, um führende Nullen zu unterdrücken, die möglicherweise auf ein Datum angewendet werden. Dieser Formatmodifikator unterdrückt das Auffüllen, das führende Nullen und nachgestellte Leerzeichen enthält.
Um den fm
zu verwenden Formatmodifikator, schließen Sie ihn in Ihr Formatmodell ein, wenn Sie angeben, wie Datumsangaben formatiert werden sollen. Zum Beispiel bei Verwendung von TO_CHAR()
Funktion zum Formatieren von Datumsangaben oder in NLS-Parametern wie dem NLS_DATE_FORMAT
Parameter beim Festlegen des Datumsformats für Ihre aktuelle Sitzung.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT
TO_CHAR(DATE '2009-08-01', 'DD-MM-YY') AS "Without fm",
TO_CHAR(DATE '2009-08-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;
Ergebnis:
Without fm With fm _____________ __________ 01-08-09 1-8-9
Wir können sehen, dass das ursprüngliche Ergebnis (ohne fm
Modifikator) gibt führende Nullen für alle Datumsteile zurück. In diesem Fall der fm
Modifikator hat die führende Null bei allen drei Datumsteilen unterdrückt.
Der fm
modifier wirkt sich nur auf das Ergebnis aus, wenn das Ergebnis tatsächlich führende Nullen enthält.
Hier ist ein Datum, das Datumsteile enthält, die zwei Ziffern einnehmen und daher keine führenden Nullen haben:
SELECT
TO_CHAR(DATE '2029-12-01', 'DD-MM-YY') AS "Without fm",
TO_CHAR(DATE '2029-12-01', 'fmDD-MM-YY') AS "With fm"
FROM DUAL;
Ergebnis:
Without fm With fm _____________ __________ 01-12-29 1-12-29
So legen Sie den Füllmodus nur für einige Datumsteile fest
Das obige Beispiel hat die führende Null bei allen Datumsteilen unterdrückt. Bei Tag, Monat und Jahr wurde die führende Null entfernt. Dies liegt daran, wenn wir einen einzelnen fm
platzieren am Anfang des Formatmodells unterdrückt es alle nachfolgende führende Nullen im Ergebnis.
Angenommen, wir möchten nur die führende Null von Tag und Monat entfernen, sie aber für das Jahr beibehalten. In diesem Fall können wir Folgendes tun:
SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-MM-fmYY')
FROM DUAL;
Ergebnis:
1-8-09
Der fm
Modifikator funktioniert im Grunde wie ein Schalter. Wenn Sie eins einschließen, unterdrückt es Nullen bis zum Ende oder bis es auf ein anderes fm
trifft Modifikator. Wenn es ein zweites fm
gibt Modifikator, dann werden führende Nullen über diesen Punkt hinaus nicht unterdrückt und so weiter.
Folgendes passiert, wenn wir drei fm
einfügen Modifikatoren – einer vor jedem Datumsteil:
SELECT TO_CHAR(DATE '2009-08-01', 'fmDD-fmMM-fmYY')
FROM DUAL;
Ergebnis:
1-08-9
Also in diesem Fall der fm
Modifikator wurde grundsätzlich aktiviert, dann deaktiviert, dann wieder aktiviert.
NLS-Parameter
Sie können auch den Füllmodus in Ihren NLS-Parametern angeben, wie z. B. NLS_DATE_FORMAT
Parameter beim Einstellen des Datumsformats für Ihre aktuelle Sitzung.
Beispiel:
ALTER SESSION SET NLS_DATE_FORMAT = 'fmDD-MM-fmRR';
SELECT DATE '2009-08-07' FROM DUAL;
Ergebnis:
7-8-09