سلام
شما بیا و از تاریخ میلادی استفاده کن! حالا برای اضافه کردن ماه و روز به تاریخ از تابع DateAdd استفاده کن. و نتیجه رو با تاریخ روز مقایسه کن:
SELECT date, DATEADD(day, 1, date) AS DateAdd from tbl where DATEADD(day, 1, date)='2017-09-28'
برای روزهای هفته هم که امروز مشخصه "چهارشنبه" است پس باید Wed رو جستجو کنی. در آخر اینکه باید یه شرط هم بنویسی که تاریخی که از DateAdd به دست اومد از تاریخ انتهای دوره بیشتر نشه.
SELECT date from tbl where DATEADD(day, 3, date)='2017-09-30' AND DATEADD(day, 3, date)<'2017-10-01'
البته طبق گفته دوستمون باید آخرین تاریخی که سرویس انجام شده رو هم ذخیره کنی.
اگه همچنان میخوای از تاریخ شمسی استفاده کنی می تونی اطلاعات رو توی دیتاتیبل بریزی و اینکارا توی برنامه روی اطلاعات انجام بدی. البته باید ببینی اطلاعات چقدره؟
***********************
ویرایش:
در مجموع با 2 تا OR میشه کوئری رو نوشت
SELECT * from tbl where DATEADD(DAY, periodDay, lastDate)='2017-10-28' AND DATEADD(DAY, periodDay, lastDate)<DateEnd OR DATEADD(MONTH, periodMonth, lastDate)='2017-10-28' AND DATEADD(MONTH, periodMonth, lastDate)<DateEnd OR Thu='true' AND '2017-09-28'<DateEnd