Ecco un paio di modi per restituire il numero di giorni in un determinato mese in Oracle Database. Potrebbe essere il numero di giorni del mese corrente o il numero di giorni di un mese in base a una data specificata.
Opzione 1
Ecco la nostra prima opzione:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;
Risultato:
31
Il LAST_DAY()
La funzione restituisce l'ultimo giorno del mese in base alla data specificata. Passandolo a TO_CHAR()
con un formato di DD
per il giorno del mese, otteniamo il numero dell'ultimo giorno del mese. Quel numero rappresenta il numero di giorni del mese.
Usiamo quindi il CAST()
funzione per convertire il risultato in un numero intero.
Opzione 2
Ecco un'altra opzione:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;
Risultato:
30
Il TRUNC(date)
la funzione restituisce il valore della data specificato con la parte temporale del giorno troncata all'unità fornita nel modello di formato specificato.