Las fechas es un factor importante a la hora de hacer nuestra selección de información de la base de datos. Para esto, frecuentemente, necesitamos el primer o último día de algún mes en específico para completar nuestro análisis. Para obtener el primer o último día de cada mes utilizamos las siguientes funciones.

DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Último día del mes anterior'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,
'Primer día del mes corriente' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'Hoy' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Último día del mes corriente'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,
'Primer día del mes siguiente'
GO

El query anterior hace referencia a la fecha de hoy. De la misma manera se puede utilizar para cualquier otra fecha.


¡​ENVÍO GRATIS!


¡CONSOLA ​RETRO CON 620 JUEGOS!

​Revive tu infancia con esta consola de video juegos retro. ​Lo mejor de todo es que contiene 620 juegos listo para comenzar a jugar.

Para conseguir el último día del mes en las nuevas versiones de SQL Server podemos usar la función nativa EOMONTH. Por ejemplo:

DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT EOMONTH ( @mydate, -1 ), 'Último día del mes anterior'
UNION
select EOMONTH( @mydate ), 'Último día del mes corriente'
UNION
SELECT EOMONTH( @mydate, 1 ),'Último día del mes siguiente'
GO

No olvides ver mis otras publicaciones populares sobre SQL: