Saltar al contenido

Cómo obtener la diferencia entre dos fechas en años, meses y días en el ejemplo de código de Sql Server

La guía o código que hallarás en este artículo es la resolución más fácil y efectiva que encontramos a esta duda o dilema.

Ejemplo 1: diferencia de fecha en el número de días servidor sql

DECLARE@start_dt DATETIME2='2019-12-31 23:59:59.9999999',@end_dt DATETIME2='2020-01-01 00:00:00.0000000';SELECT 
    DATEDIFF(year,@start_dt,@end_dt) diff_in_year, 
    DATEDIFF(quarter,@start_dt,@end_dt) diff_in_quarter, 
    DATEDIFF(month,@start_dt,@end_dt) diff_in_month, 
    DATEDIFF(dayofyear,@start_dt,@end_dt) diff_in_dayofyear, 
    DATEDIFF(day,@start_dt,@end_dt) diff_in_day, 
    DATEDIFF(week,@start_dt,@end_dt) diff_in_week, 
    DATEDIFF(hour,@start_dt,@end_dt) diff_in_hour, 
    DATEDIFF(minute,@start_dt,@end_dt) diff_in_minute, 
    DATEDIFF(second,@start_dt,@end_dt) diff_in_second, 
    DATEDIFF(millisecond,@start_dt,@end_dt) diff_in_millisecond;

Ejemplo 2: Cómo obtener el número de meses entre 2 fechas SQL Server

CREATEFUNCTION FullMonthsSeparation 
(@DateADATETIME,@DateBDATETIME)RETURNSINTASBEGINDECLARE@ResultINTDECLARE@DateXDATETIMEDECLARE@DateYDATETIMEIF(@DateA<@DateB)BEGINSET@DateX=@DateASET@DateY=@DateBENDELSEBEGINSET@DateX=@DateBSET@DateY=@DateAENDSET@Result=(SELECTCASEWHEN DATEPART(DAY,@DateX)> DATEPART(DAY,@DateY)THEN DATEDIFF(MONTH,@DateX,@DateY)-1ELSE DATEDIFF(MONTH,@DateX,@DateY)END)RETURN@ResultEND
GO

SELECT dbo.FullMonthsSeparation('2009-04-16','2009-05-15')as MonthSep -- =0SELECT dbo.FullMonthsSeparation('2009-04-16','2009-05-16')as MonthSep -- =1SELECT dbo.FullMonthsSeparation('2009-04-16','2009-06-16')as MonthSep -- =2

Al final de la post puedes encontrar los comentarios de otros gestores de proyectos, tú igualmente tienes la opción de dejar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *