从python

时间:2017-11-03 07:59:41

标签: python mysql anaconda

我想以" 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)

我只是不知道为什么输出对我来说就是这样。任何人都可以帮我找回时间。提前谢谢。

1 个答案:

答案 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)