No banco de dados Oracle, o
SYSDATE
A função retorna a data e hora atuais definidas para o sistema operacional no qual o servidor de banco de dados reside. O valor retornado é do tipo
DATE
. Sintaxe
A sintaxe fica assim:
SYSDATE
Portanto, nenhum argumento é necessário (ou aceito) e não há parênteses.
Exemplo
Aqui está um exemplo:
SELECT SYSDATE
FROM DUAL;
Resultado:
06/AUG/21
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 este parâmetro ou usar uma função como TO_CHAR()
para retornar o resultado em um formato diferente. Exemplo:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
Resultado:
2021-08-06
Chamando SYSDATE
com parênteses
Como mencionado, o
SYSDATE
função é chamada sem parênteses. Aqui está o que acontece quando o chamamos entre parênteses:
SELECT SYSDATE()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT SYSDATE() FROM DUAL Error at Command Line : 1 Column : 15 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action:
Corrigindo o SYSDATE
Valor de retorno
O
FIXED_DATE
parâmetro de inicialização permite que você defina uma data e hora constantes que SYSDATE
sempre retornará em vez da data e hora atuais. Isso pode ajudar em situações de teste quando você precisa dos mesmos dados de entrada para produzir o mesmo resultado de forma consistente.
Consulte a documentação da Oracle para
FIXED_DATE
e também parâmetros de inicialização em geral para mais informações.