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

SYSTIMESTAMP Funzione in Oracle

In Oracle Database, il SYSTIMESTAMP la funzione restituisce la data di sistema, inclusi i secondi frazionari e il fuso orario, del sistema su cui risiede il database.

Il valore restituito è di tipo TIMESTAMP WITH TIME ZONE .

Sintassi

La sintassi è questa:

SYSTIMESTAMP

Quindi, nessun argomento è richiesto (o accettato) e non ci sono parentesi.

Esempio

Ecco un esempio:

SELECT SYSTIMESTAMP
FROM DUAL;

Risultato:

06/AUG/21 07:45:00.540362000 PM -04:00

Questo esempio mostra la data in base al valore del NLS_DATE_FORMAT del mio sistema parametro (che è attualmente DD/MON/RR ). Possiamo cambiare il NLS_DATE_FORMAT parametro o utilizzare una funzione come TO_CHAR() per restituire il risultato in un formato diverso.

Esempio:

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS TZR')
FROM DUAL;

Risultato:

2021-08-06 19:48:43 -04:00

Chiamata a SYSTIMESTAMP con parentesi

Come accennato, il SYSTIMESTAMP la funzione viene chiamata senza parentesi.

Ecco cosa succede quando lo chiamiamo tra parentesi:

SELECT SYSTIMESTAMP()
FROM DUAL;

Risultato:

Error starting at line : 1 in command -
SELECT SYSTIMESTAMP()
FROM DUAL
Error at Command Line : 1 Column : 21
Error report -
SQL Error: ORA-30088: datetime/interval precision is out of range
30088. 00000 -  "datetime/interval precision is out of range"
*Cause:    The specified datetime/interval precision was not between 0 and 9.
*Action:   Use a value between 0 and 9 for datetime/interval precision.