我想从datetime.date对象中以“May 01 2009”的格式检索日期。我有一个存储在MySQL数据库中的表。它有Date列和Time Column。表格中的日期格式为
2009-05-01
我使用PyMySQL模块连接到MySQL服务器,
conn = pymysql.connect("localhost", "root", "cloudera", "streaming")
cursor = conn.cursor()
sql = "select * from table1 limit 5;"
cursor.execute(sql)
row = cursor.fetchone()
row[0]
输出是,
datetime.date(2009, 5, 1)
当我尝试以下命令以我想要的方式提取日期时,
datetime.date.strftime("%b %d %Y", row[0])
我收到错误,
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'
我只是不明白,当提供datetime.date对象时,它会引发错误。 谁能帮帮我吗。提前谢谢。
答案 0 :(得分:0)
strftime
是date
个对象的实例方法,而不是单独的函数:
print(row[0].strftime("%b %d %Y"))
错误消息试图告诉您直接从date
类调用未实例化的方法(描述符),而不将实例作为第一个参数传递。
有关详细信息,请查看date objects documentation。
答案 1 :(得分:0)
这是一个datetime.date对象。它有一个 str ()方法,可以解决您的问题。
import datetime
date=datetime.date(2009,5,1)
datetime.date(2009, 5, 1)
str(d)
将导致 '2009-05-01'