*SPSS syntax example by www.spss-tutorials.com.

*Set up test data.

data list free/mydate(a9).
begin data
01NOV2016
15OCT2017
end data.

*Create new date variable as string.

string newdate(a11).

*Add day, month, year from old string to new string and separate these components with dashes. Note: we could put the entire command on 1 line.
*However, the whole thing is more readable, manageable and debuggable by adding some line breaks between components.

compute newdate = concat(
char.substr(mydate,1,2), /*start at character 1, extract 2 characters (day)
'-',
char.substr(mydate,3,3), /*start at character 3, extract 3 characters (month)
'-',
char.substr(mydate,6,4) /*start at character 6, extract 4 characters (year)
).

*Check if result is as desired.

execute.

*Convert stringdate with dashes to SPSS date variable.

alter type newdate (date11).

*Since ALTER TYPE may result in system missing values without error or warning, check if (valid N == casecount).
*If not, check original string dates for empty string values or other issues. If needed, use REPLACE function for correcting month abbreviations.

descriptives newdate.

*Done.