Python从MySQL提取日期后如何转为YYYY-MM-DD格式?
解决Python提取MySQL日期格式问题
你拿到的(datetime.date(2022, 12, 6),)是因为fetchone()返回的是元组,里面的元素是Python的datetime.date对象,直接打印元组就会显示这种格式。要得到YYYY-MM-DD格式,只需取出元组里的日期对象再格式化即可,给你两种简单方法:
方法1:用strftime()指定格式(推荐,格式可控)
直接调用datetime.date对象的strftime方法,传入格式字符串%Y-%m-%d就能生成目标格式:
cur = sqlCon.cursor() cur.execute("select datedue from library where member=%s ", Member.get()) row = cur.fetchone() # 先判断是否查询到结果,避免空指针 if row: # 取出元组里的日期对象 date_due = row[0] # 格式化日期 formatted_date = date_due.strftime('%Y-%m-%d') print(formatted_date) # 输出:2022-12-06 else: print("未找到该会员的到期日期")
方法2:直接转字符串(更简洁)
Python的datetime.date对象转字符串时,默认就是YYYY-MM-DD格式,所以直接用str()转换就行:
if row: date_due = row[0] print(str(date_due)) # 输出:2022-12-06
另外你原来的代码里for x in row: print(row)是重复打印整个元组,这没必要,直接取出元组第一个元素处理就好。
内容的提问来源于stack exchange,提问作者Nischoy Ghose
相关产品推荐
相关产品推荐

