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

Sådan får du den aktuelle dato i Oracle

Problem:

Du vil have den aktuelle dato (uden klokkeslæt) i Oracle.

Løsning 1 (hvis du ikke har noget imod nullerne som tiden):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Hvis du f.eks. skulle køre denne forespørgsel den 16. juni 2021, ville resultattabellen se sådan ud:

aktuel_dato
2021-06-16T00:00:00Z

Diskussion:

Oracle har ikke en datatype, der kun gemmer datoen uden klokkeslæt. Men hvis du ikke har noget imod nullerne i stedet for tiden, kan du blot gemme en dato i en DATE datatype (som gemmer både dato og klokkeslæt i Oracle). For at få den aktuelle dato og tid som en DATE værdi, kan du blot bruge CURRENT_DATE . For at slippe af med tiden (og have nuller i stedet), skal du afkorte datoen:

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Løsning 2 (hvis du kun vil have datoen og ikke nuller i stedet for tiden):

SELECT
  TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date
FROM dual;

Hvis du f.eks. skulle køre denne forespørgsel den 16. juni 2021, ville resultattabellen se sådan ud:

aktuel_dato
2021-06-16

Diskussion:

For at få en tekst med VARCHAR2 type, der gemmer en dato, kan du bruge TO_CHAR() funktion i Oracle. Du skal angive dato/tidsstemplet, der skal konverteres som det første argument, og i det format, som du vil gemme datoen i som det andet argument.

Da du vil have den aktuelle dato, er det første argument CURRENT_DATE . Det andet argument er dit valg. For eksempel 'yyyy-MM-dd' står for 'år-måned-dag', hvor måneden er numerisk frem for tekst. Tabellen nedenfor viser nogle eksempler på datoformater og det respektive output for datoen 16. juni 2021.

datoformat resultat
'ÅÅÅÅ-MM-DD' 2021-06-16
'ÅÅÅÅ/MM/DD' 2021/06/16
'ÅÅÅÅ MM DD' 2021 06 16
'DD-MAN-ÅÅÅÅ' 16-JUN-2021
'DD-MAN-ÅÅ' 16-JUN-21
'FMMonth DD, YYYY' 16. juni 2021

Du kan læse mere om datoformater her.


  1. Hvordan finder man de dårligst ydende forespørgsler i SQL Server 2008?

  2. Tip til PostgreSQL

  3. Hvordan inkluderes det samlede antal returnerede rækker i resultatsættet fra SELECT T-SQL-kommandoen?

  4. SQL-kommandoen INSERT virker, men dataene vises ikke i tabellen