Используйте datepart
, чтобы узнать день недели для первого дня месяца:
datepart(weekday, '2011-06-01')
Исходя из этого, вы можете рассчитать первый день недели, например первый понедельник (2):
(2 + 7 - datepart(weekday, '2011-06-01')) % 7 + 1
Чтобы получить второй понедельник, просто добавьте к этому 7 и т. Д.
Чтобы проверить, находится ли дата в том же месяце, вам нужна последняя дата месяца, которую вы можете получить, вычитая день из первого дня следующего месяца:
datepart(day, dateadd(day, -1, '2011-07-01'))