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.