slice the string up.
Case will recognize date format #107 (mmm dd, yyyy), which is only slightly different to your format
declare @d varchar(40)
set @d = 'Mar-01-2016'
select cast(left(@d,3)+' '+substring(@d,5,2)+', '+substring(@d,8,4) as datetime2)
You should be able to use things like...