In der Oracle-Datenbank bei Verwendung von TO_CHAR()
Funktion, um den Tagesnamen eines Datums zurückzugeben, wird eine Auffüllung an den Tagesnamen angehängt, wenn er kürzer als der längste gültige Tagesname für die angegebene Sprache und den Kalender ist.
Nun, das ist das Standardverhalten. Sie können dies jedoch ändern, wenn Sie möchten.
Um dieses Auffüllen zu unterdrücken, müssen Sie lediglich dem Formatelement des Tagesnamens fm
voranstellen .
Beispiel
Angenommen, wir führen den folgenden Code aus:
SELECT
TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;
Ergebnis:
Friday , 08 March 2030
Wir können sehen, dass nachgestellte Leerzeichen an den Tagesnamen und den Monatsnamen angehängt wurden.
Wir können den fm
verwenden Formatmodifikator, um dieses Leerzeichen zu unterdrücken:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;
Ergebnis:
Friday, 8 March 2030
Problem gelöst.
Beachten Sie, dass dies auch den Nebeneffekt hatte, dass die nachgestellten Leerzeichen aus dem Monatsnamen unterdrückt wurden.
Außerdem wurde die führende Null aus der Tagesnummer unterdrückt.
Wir können mehrere fm
verwenden Modifikatoren, um genauer zu sagen, welche Auffüllung wir unterdrücken möchten. Jeder fm
schaltet in unserem Formatmodell den Füllmodus ein und aus.
Angenommen, wir möchten die nachgestellten Leerzeichen aus den Tages- und Monatsnamen unterdrücken, aber wir möchten die führende Null in der Tagesnummer beibehalten. In diesem Fall können wir Folgendes tun:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;
Ergebnis:
Friday , 08 March 2030
Der Grund, warum wir ein drittes fm
verwendet haben (vor MONTH
) liegt an der zweiten fm
Wieder aktivierte Auffüllung für alle nachfolgenden Formatelemente, was dazu führen würde, dass die nachgestellten Leerzeichen für den Monat beibehalten würden.
Folgendes meine ich:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;
Ergebnis:
Friday , 08 March 2030
In diesem Fall wurde das Auffüllen des Tagesnamens unterdrückt und dann für die Tagesnummer, den Monat und das Jahr wieder aktiviert.
Glücklicherweise können wir so viele fm
hinzufügen Modifikatoren, da wir das gewünschte Ergebnis erzielen müssen.