Query seems correct , Please convert parameter @startdate to appropriate date format like that Convert(DateTime,@startdate,Number).
or Try with this
Select a.Col1, a.col2, b.col1, b.col2
from a inner join b
on a.id = b.id
where a.id = @id and Convert(DateTime,b.startdate,103)= Convert(DateTime,@startdate,103)
Thanks,