2010-03-29 114 views
6

你如何計算兩個日期之間的星期數?你如何計算兩個日期之間的星期數?

例如如下

Declare @StartDate as DateTime = "01 Jan 2009"; 
Declare @EndDate as DateTime = "01 June 2009"; 

@StartDate and @EndDate 
+0

待辦事項你想知道這兩個日期之間有多少個7天的時間段,或者期間有多少個星期日(或星期一)? – Gabe 2010-03-29 14:22:32

回答

1

您可以使用下面的函數來retrives本週的兩個日期之間:

CREATE FUNCTION [dbo].[fGetWeeksList] 
(
    @StartDate DATETIME 
    ,@EndDate DATETIME 
) 
RETURNS 
TABLE 
AS 
RETURN 
(

SELECT DATEADD(DAY,-(DATEPART(DW,DATEADD(WEEK, x.number, @StartDate))-2),DATEADD(WEEK, x.number, @StartDate)) as [StartDate] 
     ,DATEADD(DAY,-(DATEPART(DW,DATEADD(WEEK, x.number + 1, @StartDate))-1) ,DATEADD(WEEK, x.number + 1, @StartDate)) AS [EndDate] 
FROM master.dbo.spt_values x 
WHERE x.type = 'P' AND x.number <= DATEDIFF(WEEK, @StartDate, DATEADD(WEEK,0,CAST(@EndDate AS DATE))) 
相關問題