När du använder Oracle Database kan du använda TO_CHAR(datetime)
funktion för att returnera olika delar av ett datetime-värde, inklusive bråksekunder.
För att returnera delen av bråkdelar från ett datetime-värde använder du FF
formatelement.
Exempel
Här är ett exempel att visa:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;
Resultat:
123456789
Det är också möjligt att begränsa precisionen genom att lägga till ett nummer till FF
del:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF5')
FROM DUAL;
Resultat:
12345
Numret kan vara 1
till 9
.
Förbered sekunddelen
I exemplen ovan returnerade jag bara bråkdelssekundersdelen och inget annat.
Vi kan inkludera både sekundsdelen och bråksekunderna. För att göra detta, använd SS
. Vi kan också använda X
för att ange radixtecknet (symbolen som används för att separera heltalsdelen från bråkdelen):
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Resultat:
37.123456789
Även om du uttryckligen kan ange ditt eget radixtecken – till exempel ett punkt (.
), X
formatelement kan vara användbart för portering över olika språk/territorier.
När jag körde exemplen ovan, min NLS_TERRITORY
parametern sattes till AUSTRALIA
, vilket resulterade i att radixkaraktären blev ett punkt.
Här är vad som händer när jag ändrar min NLS_TERRITORY
parameter till GERMANY
:
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Resultat:
37,123456789
Nu är radixtecknet ett kommatecken.
Det är faktiskt NLS_NUMERIC_CHARACTERS
parameter som anger vilket tecken som används för tecknet radix. Ändrar dock NLS_TERRITORY
parametern ändrar implicit NLS_NUMERIC_CHARACTERS
parameter. Du kan också explicit uppdatera NLS_NUMERIC_CHARACTERS
parameter om du föredrar, i vilket fall din NLS_TERRITORY
parametern förblir oförändrad.
Se Lista över Datetime Format Elements i Oracle för en fullständig lista över formatelement som kan användas för att formatera datetime-värden.