sql >> Database >  >> RDS >> Oracle

Hoe u de huidige datum in Oracle kunt krijgen

Probleem:

U wilt de huidige datum (zonder de tijd) in Oracle krijgen.

Oplossing 1 (als u de nullen als de tijd niet erg vindt):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Als u deze zoekopdracht bijvoorbeeld op 16 juni 2021 zou uitvoeren, zou de resultatentabel er als volgt uitzien:

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

Discussie:

Oracle heeft geen gegevenstype dat alleen de datum opslaat zonder de tijd. Maar als u de nullen in plaats van de tijd niet erg vindt, kunt u eenvoudig een datum opslaan in een DATE datatype (dat zowel de datum als de tijd opslaat in Oracle). Om de huidige datum en tijd te krijgen als een DATE waarde, kunt u eenvoudig CURRENT_DATE . gebruiken . Om van de tijd af te komen (en in plaats daarvan nullen te hebben), moet je de datum inkorten:

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Oplossing 2 (als u alleen de datum wilt en geen nullen in plaats van de tijd):

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

Als u deze zoekopdracht bijvoorbeeld op 16 juni 2021 zou uitvoeren, zou de resultatentabel er als volgt uitzien:

huidige_datum
2021-06-16

Discussie:

Om een ​​tekst van VARCHAR2 . te krijgen type dat een datum opslaat, kunt u de TO_CHAR() . gebruiken functie in Oracle. U moet de datum-/tijdstempel specificeren die moet worden geconverteerd als het eerste argument, en in het formaat waarin u de datum als het tweede argument wilt opslaan.

Aangezien u de huidige datum wilt, is het eerste argument CURRENT_DATE . Het tweede argument is jouw keuze. Bijvoorbeeld 'yyyy-MM-dd' staat voor 'jaar-maand-dag', waarbij de maand numeriek is in plaats van tekst. De onderstaande tabel geeft enkele voorbeelden van datumnotaties en de respectievelijke uitvoer voor de datum 16 juni 2021.

datumnotatie resultaat
'JJJJ-MM-DD' 2021-06-16
'JJJJ/MM/DD' 201/06/16
'JJJJ MM DD' 2021 06 16
'DD-MON-YYYY' 16-JUN-2021
'DD-MA-JJ' 16-JUN-21
'FMMonth DD, JJJJ' 16 juni 2021

U kunt hier meer lezen over datumnotaties.


  1. Een zeer beschikbare canvas LMS implementeren met een PostgreSQL-databasecluster

  2. Introductie van afspelen:nieuwe tijddiagnose voor Spotlight Cloud

  3. Converteer timestamp datatype naar unix timestamp Oracle

  4. Kan geen verbinding maken met localhost, maar wel met computernaam in SQL Server 2008