2014-11-19 6 views
0

Я знаю год и индекс недели, т. Е. 2014, 5-я неделя. как я могу узнать дату начала и окончания этой недели в SQL Server? Мне все равно, будет ли неделя, начинающаяся с понедельника или воскресенья.Дата Диапазон x-й недели в SQL Server?

В mySQL у него есть MakeDate, который может это сделать. Существует ли существующий способ сделать это в SQL Server?

Thanks

ответ

1

Попробуйте это.

DECLARE @date DATE='2014-01-01' 

SELECT Dateadd(dd, -(Datepart(dw, Dateadd(wk, 5, @date) - 1)), Dateadd(wk, 5, @date)) [WeekStart], 
     Dateadd(dd, 7 - (Datepart(dw, Dateadd(wk, 5, @date))), Dateadd(wk, 5, @date)) [WeekEnd] 
1
SELECT 
    dateadd(wk,5,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) as firstdayof5thweek2014, 
    dateadd(dd,6,dateadd(wk,5,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))) as lastdayof5thweek2014 

ВЫБРАТЬ DATEADD (уу, DATEDIFF (уу, 0, GETDATE()), 0) ==> дает вам начать день текущего года

ВЫБОР DateAdd (WK, 5, DATEADD (yy, DATEDIFF (yy, 0, getdate()), 0)) ==> В начало добавить 5 недель, чтобы получить дату начала 5-й недели в 2014 году

SELECT dateadd (dd, 6, dateadd (wk) , 5, DATEADD (yy, DATEDIDF (yy, 0, getdate()), 0))) ==> В начало добавить 6 дней, чтобы получить последнюю дату 5-й недели в 2014 году

Смежные вопросы