老师,我感觉您的课程讲解有个问题
来源:6-20 保存数据到mysql中 -2
战战的坚果
2019-06-09
如图所示,您建的知乎问题的表,其中crawl_time您设置为datetime类型,但是在5-20小节的3.13分时,您明确的说,在执行sql语句时,插入time时,需要给它传递一个字符串???,所以,您的代码如下:
crawl_time = datetime.datetime.now().strftime(SQL_DATETIME_FORMAT)
您为什么说一定要把它转换为字符串才能添加进数据库呢???
而您在爬取伯乐在线时,将create_time字段设置为datetime类型,您做的处理是: create_date = scrapy.Field(
input_processor=MapCompose(date_convert),
)
def date_convert(value):
try:
create_date = datetime.datetime.strptime(value, “%Y/%m/%d”).date()
except Exception as e:
create_date = datetime.datetime.now().date()
return create_date
如上,您在想方设法将其从字符串变为日期类型。
所以,针对上面两个日期的不同处理,我不理解!
1回答
-
bobby
2019-06-11
因为sql语句中你没法传入一个datetime类型进去, sql语句只能是字符串,所以插入时间需要转换成时间的格式,
伯乐在线因为页面上只能提取到日期,没法提取到时分秒, 所以只能转换为日期,一般情况下将一个date类型的字符串插入到datetime类型的字段上,mysql会自动给时分秒全部变成0 不会报错
10
相似问题