I Oracle Database, SYSDATE
funktionen returnerar det aktuella datumet och tiden som är inställd för operativsystemet där databasservern finns.
Det returnerade värdet är av typen DATE
.
Syntax
Syntaxen ser ut så här:
SYSDATE
Så inga argument krävs (eller accepteras) och det finns inga parenteser.
Exempel
Här är ett exempel:
SELECT SYSDATE
FROM DUAL;
Resultat:
06/AUG/21
Det här exemplet visar datumet baserat på värdet av mitt systems NLS_DATE_FORMAT
parameter (som för närvarande är DD/MON/RR
). Vi kan ändra denna parameter, eller använda en funktion som TO_CHAR()
för att returnera resultatet i ett annat format.
Exempel:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
Resultat:
2021-08-06
Ringer SYSDATE
med parenteser
Som nämnts, SYSDATE
funktionen anropas utan parentes.
Här är vad som händer när vi kallar 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:
Åtgärda SYSDATE
Returvärde
FIXED_DATE
initialiseringsparametern gör att du kan ställa in ett konstant datum och tid som SYSDATE
kommer alltid tillbaka istället för aktuellt datum och tid.
Detta kan hjälpa till i testsituationer när du behöver samma indata för att producera samma resultat konsekvent.
Se Oracles dokumentation för FIXED_DATE
och även initialiseringsparametrar i allmänhet för mer information.