CREATE FUNCTION [dbo].[TM_S_HitungMinggu]
( @fromdate AS date ,
@todate AS date
)
RETURNS int
AS
BEGIN
DECLARE @minggu Integer
DECLARE @hasilBagi Integer
DECLARE @modBagi Integer
DECLARE @modBagiMinggu Integer
DECLARE @tempFromDate Date
DECLARE @tempToDate Date
BEGIN
SET @hasilBagi = (DATEDIFF(DAY, @fromdate, @todate)+1)/7
SET @modBagi = (DATEDIFF(DAY, @fromdate, @todate)+1)%7
SET @tempToDate = DATEADD(DAY, @modBagi-1, @fromdate)
SET @tempFromDate = @fromdate
SET @modBagiMinggu = 0
WHILE (@tempFromDate <= @tempToDate) BEGIN
SET @modBagiMinggu += (CASE WHEN DATEPART(dw, @tempFromDate) = 1 THEN 1 ELSE 0 END)
SET @tempFromDate = DATEADD(DAY, 1, @tempFromDate)
END
SET @minggu = @hasilBagi+@modBagiMinggu
END
RETURN @minggu
END
0 Komentar