如何在python中获取两个日期变量之间的小时差异

时间:2014-11-21 09:35:25

标签: python

我正在使用python 2.7.2。我试图获得MySQL查询产生的两个日期变量之间的小时差异。

#!/usr/local/python2.7.2/bin/python                                      
import sys                                                               
import datetime                                                          
from datetime import datetime                                            
import MySQLdb                                                           
import MySQLdb.cursors                                                   
# Inventory db connection
db1=MySQLdb.connect(host = "localhost",user = "root",passwd ="*****",db="inventory")
cursor=db1.cursor()                                                                                   
cursor.execute("select max(date_created) from inventory.inventory_details;")                                           
inv=cursor.fetchall()

# Remote Inventory db connection
db2=MySQLdb.connect(host = "remotehost",user = "root",passwd ="*****",db="inventory")
cursor=db2.cursor()                                                                                   
cursor.execute("select max(date_created) from inventory.inventory_details;")                                           
remote_inv=cursor.fetchall()

print inv
print remote_inv

d1 = str(inv)
d2 = str(remote_inv)
diff = d2-d1
diff_minutes = diff.seconds/60

这里" inv"的输出是((datetime.datetime(2014,11,20,13,54,7),),) remote_inv的输出是((datetime.datetime(2014,11,20,19,17,2),),)

我需要转换成格式"%Y-%m-%d%H:%M:%S"。我尝试使用str()并没有帮助。

帮我解决两个MySQL日期变量的区别..我只是想知道这是否可以在python中执行。

提前致谢。

2 个答案:

答案 0 :(得分:0)

strftime怎么办?

示例:

import datetime
print datetime.datetime.now().strftime("%Y-%m-%d %H:%M")

答案 1 :(得分:0)

invremote_inv都是元组的元组,正如您从输出中看到的那样。那是因为fetchall获取元组中的所有行;并且该元组中的每个元素本身都是所有列的元组。由于该行中只有一行和一列,因此您应该使用fetchone而不是fetchall,并获取其中的第一个元素:

inv = cursor.fetchone()[0]
remote_inv = cursor.fetchone()[0]
diff = remote_inv - inv
diff_minutes = diff.total_seconds() / 60