Aquí hay un par de formas de devolver la cantidad de días en un mes determinado en Oracle Database. Puede ser el número de días del mes actual o el número de días de un mes en función de una fecha específica.
Opción 1
Esta es nuestra primera opción:
SELECT CAST(TO_CHAR(LAST_DAY(date '2030-01-17'), 'DD') AS INT)
FROM DUAL;
Resultado:
31
El LAST_DAY()
La función devuelve el último día del mes en función de la fecha especificada. Al pasar esto a TO_CHAR()
con un formato de DD
para el día del mes, obtenemos el número del último día del mes. Ese número representa el número de días en el mes.
Luego usamos el CAST()
función para convertir el resultado a un número entero.
Opción 2
Aquí hay otra opción:
SELECT
TRUNC(LAST_DAY(date '2030-08-20'))-TRUNC(date '2030-08-20', 'MM')
FROM DUAL;
Resultado:
30
El TRUNC(date)
La función devuelve el valor de fecha dado con la parte de la hora del día truncada a la unidad proporcionada en el modelo de formato especificado.