Прежде всего
and [cal date] > '1/1/2018' and [cal date] < '1/31/2018'
выберет все данные с 1 января по 30 января и не будет включать никаких данных с 31 января.
Учитывая это, чек должен быть
and [cal date] > '1/1/2018' and [cal date] < '2/1/2018'
Так что, если вы получите месяц от выпадающего списка, вы можете сделать что-то вроде ниже
select * from [dbo.mytablename] t
join
(values
('Jan', 1),('Feb',2),('Mar', 3),
('Apr', 4),('May',5),('Jun', 6),
('Jul', 7),('Aug',8),('Sep', 9),
('Oct', 10),('Nov',11),('Dec', 12)
)v(mon,num)
on v.mon='<month name received from a text box>'
t.[agent name] = '<value from a textbox that I know how to pass in>'
and t.[cal date] > cast(cast(v.num as varchar)+'/1/2018' as date)
and t.[cal date] < cast(cast((v.num+1)%12 as varchar)+'/1/'+ cast(2018+ (v.num/12) as varchar) as date)