Возможно ли получить даты первой недели месяца, когда GETDATE() задается в качестве ввода.SQL Server: получать диапазоны дат первой и второй недели месяца
я могу получить даты текущей недели по ниже кода: -
select
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 1, GETDATE()), 101),
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 7, GETDATE()), 101)
Как я могу получить дату для первой, второй недели месяца на основе GETDATE()
в качестве входных данных?
Например:
- 1 неделю рабочие даты июля 2016: - 1/7/2016 - рабочие даты 2/7/16
- 2 недели: - 4/7/2016 - 9/7/2016
Благодаря
EDIT: - Я использую ниже запроса, чтобы получить дату начала и окончания каждой недели в течение данного месяца: -
DECLARE @date date = '2016-07-08'--sample date
DECLARE @firstDay date = DATEADD(M, DATEDIFF(M, 0, @date), 0)
DECLARE @firstWeekLastDay date = DATEADD(D, 7-DATEPART(DW, @firstDay), @firstDay)
DECLARE @secondWeekFirstDay date = DATEADD(D, 2, @firstWeekLastDay)
DECLARE @secondWeekLastDay date = DATEADD(D, 5, @secondWeekFirstDay)
DECLARE @thirdWeekfirstDay date = DATEADD(D, 2, @secondWeekLastDay)
DECLARE @thirdWeekLastDay date = DATEADD(D, 5, @thirdWeekfirstDay)
DECLARE @fourthWeekFirstDay date = DATEADD(D, 2, @thirdWeekLastDay)
DECLARE @fourthWeekLastDay date = DATEADD(D, 5, @fourthWeekFirstDay)
DECLARE @fifthWeekFirstDay date = DATEADD(D, 2, @fourthWeekLastDay)
DECLARE @fifthWeekLastDay date = DATEADD(D, 5, @fifthWeekFirstDay)
SELECT @firstDay, @firstWeekLastDay, @secondWeekFirstDay, @secondWeekLastDay, @thirdWeekfirstDay, @thirdWeekLastDay, @fourthWeekFirstDay, @fourthWeekLastDay
поэтому неделя начинается в воскресенье и заканчивается в субботу в этом случае? – Whencesoever
также в примере 2week имеет только 6 дней? – Whencesoever
Да, так что в основном получить все даты, которые лежат в первую неделю в течение определенного месяца. – Villie