I Oracle Database er SYSDATE
funktion returnerer den aktuelle dato og det klokkeslæt, der er indstillet for det operativsystem, som databaseserveren ligger på.
Den returnerede værdi er af typen DATE
.
Syntaks
Syntaksen ser sådan ud:
SYSDATE
Så ingen argumenter er påkrævet (eller accepteret), og der er ingen parenteser.
Eksempel
Her er et eksempel:
SELECT SYSDATE
FROM DUAL;
Resultat:
06/AUG/21
Dette eksempel viser datoen baseret på værdien af mit systems NLS_DATE_FORMAT
parameter (som i øjeblikket er DD/MON/RR
). Vi kan ændre denne parameter eller bruge en funktion som TO_CHAR()
for at returnere resultatet i et andet format.
Eksempel:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
Resultat:
2021-08-06
Ringer til SYSDATE
med parenteser
Som nævnt er SYSDATE
funktion kaldes uden parentes.
Her er, hvad der sker, når vi kalder det med parentes:
SELECT SYSDATE()
FROM DUAL;
Resultat:
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:
Rettelse af SYSDATE
Returværdi
FIXED_DATE
initialiseringsparameter giver dig mulighed for at indstille en konstant dato og tid, der SYSDATE
vil altid vende tilbage i stedet for den aktuelle dato og klokkeslæt.
Dette kan hjælpe i testsituationer, hvor du har brug for de samme inputdata for at producere det samme resultat konsekvent.
Se Oracles dokumentation for FIXED_DATE
og også initialiseringsparametre generelt for mere information.