3:59 0 0
Truco SQL Obtener el primer dia del mes y el ultimo

Truco SQL Obtener el primer dia del mes y el ultimo

  DrUalcman |  enero 202024

¿Nunca has tenido la necesidad de saber cuándo es el primer día del mes y el último de un mes en concreto? Bueno, pues a mí si me ha pasado y resulta que en Microsoft SQL no tenemos ninguna función integrada que nos dé dicha información. Y es por eso de este blog hoy.

Manos a la obra

Lo vamos a manejar como una función de SQL que nos va a devolver una tabla con 1 fila y 2 columnas. La primera columna será el primer día del mes y la segunda columna contendrá el último día del mes. Para ello necesitaremos 2 valores, el año y el mes. ¿Y por qué el año? Bueno, podríamos utilizar siempre el año actual, pero entonces, si queremos saber qué día de la semana es, pues entonces es mejor también pasar el año. Además de la posibilidad de los años bisiestos, que el último día del mes de febrero podría cambiar de ser un 28 a un 29.

El código, la verdad, es muy simple y creo no necesita más explicación que la que ya he explicado en el párrafo anterior.

El código

CREATE FUNCTION GetMonthRange
(
@Year INT,
@Month INT
)
RETURNS TABLE
AS
RETURN
(
-- ============================================================
-- Author:
-- Create date: <04 Jan 2024>
-- Description:
-- How to use:
-- Example usage:
-- DECLARE @Year INT = 2023;
-- DECLARE @Month INT = 3;
-- SELECT FirstDayOfMonth, LastDayOfMonth
-- FROM dbo.GetMonthRange(@Year, @Month);
-- ============================================================

SELECT
DATEFROMPARTS(@Year, @Month, 1) AS FirstDayOfMonth,
EOMONTH(DATEFROMPARTS(@Year, @Month, 1)) AS LastDayOfMonth
);

Y para llamar a esta función se puede hacer de la siguiente manera.

--primera opcion
select * from dbo.GetMonthRange(2024, 2)

--segunda opcion
declare @first_date date
declare @last_date date

select @first_date = FirstDayOfMonth, @last_date = LastDayOfMonth from dbo.GetMonthRange(2024, 2)

select @first_date first_date, @last_date last_date

Y eso es todo amigos, espero que este pequeño truco de SQL os haya gustado.

0 Guest reviews

 
 
 

File