Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função SYSTIMESTAMP no Oracle


No banco de dados Oracle, o SYSTIMESTAMP A função retorna a data do sistema, incluindo segundos fracionários e fuso horário, do sistema no qual o banco de dados reside.

O valor retornado é do tipo TIMESTAMP WITH TIME ZONE .

Sintaxe


A sintaxe fica assim:
SYSTIMESTAMP

Portanto, nenhum argumento é necessário (ou aceito) e não há parênteses.

Exemplo


Aqui está um exemplo:
SELECT SYSTIMESTAMP
FROM DUAL;

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

Este exemplo exibe a data com base no valor do NLS_DATE_FORMAT do meu sistema parâmetro (que atualmente é DD/MON/RR ). Podemos alterar o NLS_DATE_FORMAT parâmetro, ou use uma função como TO_CHAR() para retornar o resultado em um formato diferente.

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

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

Chamando SYSTIMESTAMP com parênteses


Como mencionado, o SYSTIMESTAMP função é chamada sem parênteses.

Aqui está o que acontece quando o chamamos entre parênteses:
SELECT SYSTIMESTAMP()
FROM DUAL;

Resultado:
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.