sql >> Databasteknik >  >> RDS >> Oracle

Hur man får det aktuella datumet i Oracle

Problem:

Du vill få det aktuella datumet (utan tiden) i Oracle.

Lösning 1 (om du inte har något emot nollorna som tiden):

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Om du till exempel skulle köra den här frågan den 16 juni 2021 skulle resultattabellen se ut så här:

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

Diskussion:

Oracle har ingen datatyp som endast lagrar datumet utan tiden. Men om du inte har något emot nollorna i stället för tiden, kan du helt enkelt lagra ett datum i en DATE datatyp (som lagrar både datum och tid i Oracle). För att få aktuellt datum och tid som DATE värde kan du helt enkelt använda CURRENT_DATE . För att bli av med tiden (och ha nollor istället) måste du trunkera datumet:

SELECT
  TRUNC(CURRENT_DATE) AS current_date
FROM dual;

Lösning 2 (om du bara vill ha datum och inte nollor i stället för tiden):

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

Om du till exempel skulle köra den här frågan den 16 juni 2021 skulle resultattabellen se ut så här:

aktuellt_datum
2021-06-16

Diskussion:

För att få texten VARCHAR2 typ som lagrar ett datum kan du använda TO_CHAR() funktion i Oracle. Du måste ange datum-/tidsstämpeln som ska konverteras som det första argumentet och i det format som du vill lagra datumet i som det andra argumentet.

Eftersom du vill ha det aktuella datumet är det första argumentet CURRENT_DATE . Det andra argumentet är ditt val. Till exempel, 'yyyy-MM-dd' står för 'år-månad-dag', där månaden är numerisk snarare än text. Tabellen nedan visar några exempel på datumformat och respektive utdata för datumet 16 juni 2021.

datumformat resultat
'ÅÅÅÅ-MM-DD' 2021-06-16
'ÅÅÅÅ/MM/DD' 2021/06/16
'ÅÅÅÅ MM DD' 2021 06 16
'DD-MÅN-ÅÅÅÅ' 16-JUN-2021
'DD-MÅN-ÅÅ' 16-JUN-21
'FMMonth DD, YYYY' 16 juni 2021

Du kan läsa mer om datumformat här.


  1. ORA-03113:slutet av filen på kommunikationskanalen

  2. Hur man använder Distributed AD för att minska patchtiden i Oracle EBS

  3. Formatera UUID-sträng utan REGEXP_REPLACE och PL/SQL

  4. Snabbaste sättet att köra samma fråga flera gånger i SQL Server