我想以" HH:MM"的形式检索时间。来自datetime.timedelta对象。我有一个存储在MySQL数据库中的表。它有时间列,以格式存储时间
00:00:00
我使用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[1]
输出是,
datetime.timedelta(0)
我已经完成了这篇文章Python: How do I get time from a datetime.timedelta object?。但是这个问题与我的区别在于输出结果。对于那篇文章,输出是
datetime.timedelta(0, 64800)
对我来说只是,
datetime.timedelta(0)
我只是不知道为什么输出对我来说就是这样。任何人都可以帮我找回时间。提前谢谢。
答案 0 :(得分:0)
键入row[1]
时,python会打印变量的repr - 在这种情况下,timedelta的repr是“datetime.timedetla(days,seconds)”。
您可以使用str
对其进行字符串化,但这会给您HH:MM:SS
str(row[1])
-> "23:00:00"
要获得HH:MM,您可以执行以下操作:
(datetime.min + row[1]).strftime("%H:%M")
-> "23:00"
所以你的代码应该是这样的:
conn = pymysql.connect("localhost", "root", "cloudera", "streaming")
cursor = conn.cursor()
sql = "select * from table1 limit 5;"
cursor.execute(sql)
row = cursor.fetchone()
timestr = (datetime.min + row[1]).strftime("%H:%M")
print(timestr)