Tema SQL
EOMONTH() (SQL Server)
Devuelve el último día del mes de una fecha dada, con desplazamiento opcional de meses. Simplifica informes de cierre mensual frente a manual DATEADD/DAY.
Descripción
EOMONTH(fecha [, meses_a_sumar]) retorna tipo date. Útil para rangos de inicio y fin de mes y comparaciones de periodo. Atención a zona horaria si el origen es datetimeoffset. En PostgreSQL suele usarse date_trunc al mes más aritmética de intervalo para el último día.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
EOMONTH(fecha [, meses])
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Desplazamiento
- Segundo argumento mueve el mes de referencia antes de calcular fin.
Ejemplos
Ejemplo 1
SELECT EOMONTH('2026-04-12') AS fin_abril;
SELECT EOMONTH(GETDATE(), -1) AS fin_mes_anterior;
Ejemplo 2
SELECT DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AS inicio,
EOMONTH(GETDATE()) AS fin;
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.