Sql-Server-2016
有開始日期和結束日期,想要添加除週末日期以外的所有日期
所以我有一個我正在處理的儲存過程,它有一個使用者輸入一個開始日期和結束日期。我希望能夠將除週末日期之外的所有日期插入表中。它將記錄添加到表中就好了,它還添加了周末日期。這是我得到的最接近的,但它沒有按我預期的那樣工作。任何幫助或方向將不勝感激。
Declare @w_new_id int = SCOPE_IDENTITY(); With theDates AS (SELECT @p_start_date as theDate UNION ALL SELECT DATEADD(day, 1, theDate) FROM theDates WHERE DATEADD(day, 1, theDate) <= @p_end_date ) INSERT INTO XLT_Vacation_Request_Dates ( request_id, requester_id, requester_name, employee_id, employee_name, requested_date, status ) SELECT @w_new_id, @p_requester_id, @w_user_name, @w_user, @p_employee_name, theDate, 0 -- Unapproved from theDates where ((DATEPART(dw, @p_start_date) + @@DATEFIRST) % 7) NOT IN (0, 1) OPTION (MAXRECURSION 0)
將您的最終選擇列表更改為
SET DATEFIRST 7 -- ( Sunday ) SELECT * from theDates where DATEPART(WEEKDAY,theDates.theDate ) NOT IN(7,1)
注 7,1 對應週六和周日,根據您所在的地區而有所不同。
或者
SELECT * from theDates where DATENAME(DW, thedate) NOT IN('Saturday','Sunday')