sql >> Databasteknik >  >> RDS >> Oracle

Hur man får den sista dagen i månaden i Oracle

I Oracle Database kan vi använda LAST_DAY() funktion för att returnera den sista dagen i en given månad. Detta kan vara den sista dagen i den aktuella månaden eller den sista dagen i månaden baserat på ett angivet datum.

Exempel

SELECT LAST_DAY(date '2035-02-15')
FROM DUAL;

Resultat:

28-FEB-35

Den sista dagen i månaden definieras av sessionsparametern NLS_CALENDAR . Se Hur du kontrollerar värdena för NLS-parametrarna för att ta reda på vilken kalender din session använder. Min använder den gregorianska kalendern.

Det här är vad som händer när vi flyttar fram datumet ett år:

SELECT LAST_DAY(date '2036-02-15')
FROM DUAL;

Resultat:

29-FEB-36

Följande år är ett skottår, så vi får 29 dagar i februari det året.

Observera att LAST_DAY() funktion returnerar en DATE värde. Detta är sant även om vi skickar en TIMESTAMP värde:

SELECT LAST_DAY(TIMESTAMP '2036-07-15 15:30:45.12345')
FROM DUAL;

Resultat:

31-JUL-36

Aktuell månad

Det här exemplet får den sista dagen i den aktuella månaden:

SELECT 
    SYSDATE,
    LAST_DAY(SYSDATE)
FROM DUAL;

Resultat:

SYSDATE LAST_DAY(SYSDATE)
12-APR-22 30-APR-22

I det här fallet använde jag SYSDATE för det aktuella datumet.

Nästa månad

Vi kan använda ADD_MONTHS() funktion för att lägga till en eller flera månader till det aktuella datumet:

SELECT 
    SYSDATE,
    LAST_DAY(ADD_MONTHS(SYSDATE, 1))
FROM DUAL;

Resultat:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE,1))
12-APR-22 31-22 MAJ

I det här fallet fick vi den sista dagen i nästa månad.

Förra månaden

Vi kan lägga till ett negativt värde för att få den sista dagen i en föregående månad:

SELECT 
    SYSDATE,
    LAST_DAY(ADD_MONTHS(SYSDATE, -1))
FROM DUAL;

Resultat:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE,-1))
12-APR-22 31-MAR-22

  1. Oracle som lösning på muterande tabeller

  2. Är det möjligt att mata ut en SELECT-sats från ett PL/SQL-block?

  3. Oracle:Kombinera flera resultat i en underfråga till ett enda kommaseparerat värde

  4. Så här skapar du en offline-app för internationalisering:Bygg projektstrukturen