Panda dtypes handle dates and strings as objects, thus you must know which columns are datetime columns. There's a universe where data scientists don't give a damn about dates, but evidently not mine. Anyway, here's the workaround till Pandas implements the date dtype:
And just to reduce it down to do what I did:
def createHyper(xlsx, filename, tablename):
for name in xlsx.columns:
if 'date' in name.lower():
xlsx[name] = pd.to_datetime(xlsx[name],errors='coerce',utc=True)
return open(filename, 'rb')
errors = 'coerce' makes it so you can have dates like 1/1/3000 which is handy in a world of scd2 tables utc = True was necessary for me because my dates were timezone sensitive, yours may not be.