miércoles, 25 de febrero de 2015

Cómo obtener el primer y último dia del mes en SQL Server

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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.
Fuente aquí