So entfernen Sie führende Nullen von Tag und Monat Werte in Oracle, die beim Parsen von string mit to_char-Funktion?
Ich abrufen möchten, ein Datum ohne führende Nullen vor dem Tag und Monat Werte in einer select-Anweisung. Wenn ich führen Sie die folgende Abfrage
select to_char(sysdate, 'dd.mm.yyyy') from dual;
Bekomme ich 21.03.2014 als Ergebnis. Außerdem, wenn heute, zum Beispiel, 7. März, 2014, ich würde 07.03.2014. Wie kann ich loswerden dieser führenden Nullen?
Ich vereinbarte mit Doug S on Jan 11 '16 4:38: ich hätte nur" fm " vorhanden, einmal in der Zeichenkette, wie zum Beispiel: to_char(DATEPART--20,'fmMM.DD.YY'). Ansonsten erhielt ich '1.03.14', wie die Antwort zeigt
InformationsquelleAutor Yulian | 2014-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt
FM-Füllen-Modus.
In ein datetime-format-element der TO_CHAR-Funktion, Modifikator unterdrückt Leerzeichen in den nachfolgenden Zeichen-Elemente (wie der MONAT) und unterdrückt die führenden Nullen für die nachfolgende Anzahl von Elementen (z.B. MI) in ein Datum-format-Modell. Ohne FM, das Ergebnis einer Charakter-element ist immer rechts mit Leerzeichen aufgefüllt, um eine Feste Länge, und führende Nullen sind immer wieder für eine Anzahl von element. Mit FM, die unterdrückt Auffüllung mit Leerzeichen, die Länge der return-Wert kann variieren.
FWIW, es funktioniert auch mit PostreSQL (minus DATEPART).
Ich konnte Sie nur haben, " fm " vorhanden, einmal in der Zeichenkette, wie zum Beispiel: to_char(DATEPART--20,'fmMM.DD.YY'). Ansonsten erhielt ich '1.03.14', wie die Antwort zeigt.
Das ist, weil
fm
funktioniert wie ein Umschalter. Beachten Sie die Beschreibung sagt "unterdrückt führende Nullen für nachfolgenden - Elementen". Wenn SiefmMM.DDfm.YY
Sie entfernen würde, Nullen von beiden den Monat und den Tag, aber nicht das Jahr (nicht, dass das Jahr ist wahrscheinlich immer haben führende Nullen, aber das könnte eher relevant, wenn Sie die Zeit im Format-string).InformationsquelleAutor Robert Merkwürdigeliebe
Versuchen Sie dies:
select to_char(to_date('20-oct-2000'),'fmmm/dd/fmrr') from dual
Obige Abfrage entfernt die führenden Nullen von Tag und Monat Werte in Oracle.
InformationsquelleAutor sen
Dies ist weit entfernt von elegant, aber es funktioniert:
Im Grunde, Sie würde in eine Zahl umwandeln jeden Teil des Datums
InformationsquelleAutor pablomatico