IF OBJECT_ID('tempdb..#TEMP_DATES') IS NOT NULL DROP TABLE #TEMP_DATES;
CREATE TABLE #TEMP_DATES (DATES VARCHAR(100))
INSERT INTO #TEMP_DATES (DATES)
VALUES ('July 7, 2016'), ('April-16'),('June 2016'),('Febuary'),('Apr-16'),('4/30/2016'),('02/29/2016'),('16-Apr')
SELECT * FROM #TEMP_DATES
select right(convert(varchar, getdate(), 103), 7)or
SELECT DATENAME(MONTH, @thedate) + '/' + DATENAME(YEAR, @thedate)or
Select SubString(Convert(Varchar(Max), GetDate(),0), 1, 3) + '/' + Cast(Year(GetDate()) As Varchar(Max))
select try_cast('Apr-16' as date)
it returns NULL if it cannot complete the conversion (e.g. it returns NULL from that example)
But I suspect what you want will simply not be easy.