In addition to solution #1 by
Kornfeld Eliyahu Peter[
^]...
If a month is always at the beginning of string-date, i'd suggest to create helper-table. See:
DECLARE @tmp TABLE(Mnth INT IDENTITY(1,1), MnthName VARCHAR(30))
INSERT INTO @tmp (MnthName)
VALUES('January'), ('February'), ('March')
DECLARE @stringDates TABLE(stringDate VARCHAR(30))
INSERT INTO @stringDates (stringDate)
VALUES('March-04-2008'), ('February-28-2008'), ('January-14-2008')
SELECT s.stringDate AS OriginalDate, m.Mnth
FROM @tmp AS m INNER JOIN @stringDates AS s ON m.MnthName = LEFT(stringDate, CHARINDEX('-',stringDate)-1)
Final note: Never store dates as a string! Date is a date and nothing else!