比較2個日期區間重合的天數


create function [dbo].[GetRangeDays] (@dtRange1From DATE,
      @dtRange1To DATE,
      @dtRange2From DATE,
      @dtRange2To DATE)
RETURNS int
    AS
    BEGIN
    
    IF NOT ( @dtRange2From > @dtRange1To OR @dtRange2To < @dtRange1From )
        BEGIN
    
            DECLARE @dt1 DATE
            DECLARE @dt2 DATE
    
            SELECT  @dt1 = @dtRange1From,
                    @dt2 = @dtRange1To
    
            IF @dtRange2From > @dt1
                SET @dt1 = @dtRange2From
    
            IF @dtRange2To < @dt2
                SET @dt2 = @dtRange2To
    
            RETURN DATEDIFF(d, @dt1, @dt2) + 1
    
        END
    
      RETURN 0
    END

GO

發佈了36 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章