一直在maxcomputer上用pyodps建数仓表,讲讲其中一个巨大的坑就是它存储时间的时候是最后都是转化成时间戳存储的,
如果你想把datetime类型的日期取出date存进去就会报:TypeError: expected <type 'int'> but <type 'datetime.date'> found
例如:
# pay_time是datetime类型
df_course['day'] = df_course.pay_time.map(lambda x: x.date(), rtype='datetime')
如果按照上述写法会报错,你可以这样写达到同样的效果:
df_course['day'] = df_course.pay_time.map(lambda x: x.replace(hour=0, minute=0, second=0, microsecond=0), rtype='datetime')
就是将所有的时、分、秒、毫秒替换成0,这样存储的时候可以转化成时间戳存储进去,而展示的时候是datetime类型,但是只显示date部分。