sql >> Database teknologi >  >> RDS >> Oracle

SYSDATE-funktion i Oracle

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.


  1. Sammensæt den anden kolonneværdi, hvis den første kolonneværdi er den samme

  2. SQL :MELLEM vs <=og>=

  3. Hvordan bruger man ANY i stedet for IN i en WHERE-klausul med Rails?

  4. Hvornår skal vi bruge NVARCHAR/NCHAR i stedet for VARCHAR/CHAR i SQL Server?