So I was adding parse_dates, when i realized that DataFrame.from_records already parses datetime objects correctly to np.datetime64. SqlAlchemy returns datetime.datetime correctly for the appropriate column types.

The only use case then is when you have dates NOT stored in a datetime column - e.g. in SQLite there is no datetime support. The most useful then is to make parse_dates accept a list of columns to attempt to parse, similar to the csv reader.