Как рассчитать количество недель между двумя датами? - PullRequest
7 голосов
/ 29 марта 2010

Как рассчитать количество недель между двумя датами?

например, следующим образом

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

@StartDate and @EndDate

Ответы [ 2 ]

15 голосов
/ 29 марта 2010

Используйте функцию Datediff.datediff(ww,@startdate,@enddate)

ww сообщает функции, в каких единицах измерения требуется разница.

http://msdn.microsoft.com/en-us/library/ms189794.aspx

2 голосов
/ 28 марта 2014

Вы можете использовать следующую функцию для извлечения недели между двумя датами:

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...