Oracle
 sql >> Database >  >> RDS >> Oracle

Come restituire frazioni di secondi da un valore DateTime in Oracle

Quando si utilizza Oracle Database, è possibile utilizzare TO_CHAR(datetime) funzione per restituire varie parti di un valore datetime, inclusi i secondi frazionari.

Per restituire la parte di secondi frazionari da un valore datetime, usa il FF elemento di formato.

Esempio

Ecco un esempio da dimostrare:

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

Risultato:

123456789

È anche possibile limitare la precisione aggiungendo un numero al FF parte:

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

Risultato:

12345

Il numero può essere 1 tramite 9 .

Anteponi la seconda parte

Negli esempi precedenti, ho restituito solo la parte dei secondi frazionari e nient'altro.

Possiamo includere la parte dei secondi così come i secondi frazionari. Per fare ciò, usa il SS . Possiamo anche usare X per specificare il carattere radice (il simbolo utilizzato per separare la parte intera dalla parte frazionaria):

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

Risultato:

37.123456789

Sebbene tu possa fornire esplicitamente il tuo carattere radix, ad esempio un punto (. ), la X L'elemento format può essere utile per il porting in diverse lingue/territori.

Quando ho eseguito gli esempi precedenti, il mio NLS_TERRITORY il parametro è stato impostato su AUSTRALIA , che ha portato il carattere radix a essere un punto fermo.

Ecco cosa succede quando cambio il mio NLS_TERRITORY parametro a GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

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

Risultato:

37,123456789

Ora il carattere radix è una virgola.

In realtà è il NLS_NUMERIC_CHARACTERS parametro che specifica quale carattere viene utilizzato per il carattere radix. Tuttavia, modificando il NLS_TERRITORY il parametro cambia implicitamente il NLS_NUMERIC_CHARACTERS parametro. Puoi anche aggiornare esplicitamente NLS_NUMERIC_CHARACTERS parametro se preferisci, nel qual caso il tuo NLS_TERRITORY parametro rimarrà invariato.

Vedi Elenco di elementi di formato DateTime in Oracle per un elenco completo degli elementi di formato che possono essere utilizzati per formattare i valori DateTime.