The bottom line is that you have to use or ask for the date in the form that SAS expects...either as the date in number form for the where clause or the date as a date constant for the where clause:
where period_end_date = '31Jan2009'd;
where period_end_date = 17928;
The first example is a date constant, which is easier to read and to change. The second example is the "number" 17928 because Jan 31, 2009 is 17,928 days from Jan 1, 1960 (which represents a 0 in the SAS date time line).
For example, if Jan 1 1960 = 0 then here are some other date values shown as how they are internally stored by SAS: