Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So geben Sie Sekundenbruchteile von einem Datetime-Wert in Oracle zurück

Bei Verwendung von Oracle Database können Sie TO_CHAR(datetime) verwenden Funktion, um verschiedene Teile eines datetime-Werts zurückzugeben, einschließlich der Sekundenbruchteile.

Um den Sekundenbruchteil von einem datetime-Wert zurückzugeben, verwenden Sie den FF format-Element.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;

Ergebnis:

123456789

Es ist auch möglich, die Genauigkeit einzuschränken, indem man eine Zahl an den FF anhängt Teil:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF5')
FROM DUAL;

Ergebnis:

12345

Die Zahl kann 1 sein bis 9 .

Sekundenteil voranstellen

In den obigen Beispielen habe ich nur die Sekundenbruchteile zurückgegeben und sonst nichts.

Wir können sowohl den Sekundenteil als auch die Sekundenbruchteile einbeziehen. Verwenden Sie dazu den SS . Wir können auch X verwenden um das Basiszeichen anzugeben (das Symbol, das verwendet wird, um den ganzzahligen Teil vom Bruchteil zu trennen):

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Ergebnis:

37.123456789

Während Sie explizit Ihr eigenes Radix-Zeichen angeben könnten – zum Beispiel einen Punkt (. ), das X format-Element kann für die Portierung über verschiedene Sprachen/Gebiete hinweg nützlich sein.

Als ich die obigen Beispiele ausgeführt habe, war mein NLS_TERRITORY Parameter wurde auf AUSTRALIA gesetzt , was dazu führte, dass das Radixzeichen ein Punkt war.

Folgendes passiert, wenn ich mein NLS_TERRITORY ändere Parameter auf GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Ergebnis:

37,123456789

Jetzt ist das Basiszeichen ein Komma.

Es sind eigentlich die NLS_NUMERIC_CHARACTERS Parameter, der angibt, welches Zeichen für das Basiszeichen verwendet wird. Ändern Sie jedoch NLS_TERRITORY Parameter ändert implizit die NLS_NUMERIC_CHARACTERS Parameter. Sie können die NLS_NUMERIC_CHARACTERS auch explizit aktualisieren Parameter, wenn Sie es vorziehen, in diesem Fall Ihr NLS_TERRITORY Parameter bleibt unverändert.

Siehe Liste der Datetime-Formatelemente in Oracle für eine vollständige Liste der Formatelemente, die zum Formatieren von Datetime-Werten verwendet werden können.