在我的数据库中,我以下列格式存储日期时间。我想在几秒钟内得到两个样本之间的差异。是否有任何简单的方法可用?
u'2013-05-20 05:09:06'
u'2013-05-20 05:10:06'
答案 0 :(得分:5)
使用datetime模块。
>>> import datetime
>>> start = datetime.datetime.strptime(u'2013-05-20 05:09:06', '%Y-%m-%d %H:%M:%S')
>>> end = datetime.datetime.strptime(u'2013-05-20 05:10:06', '%Y-%m-%d %H:%M:%S')
>>> (end - start).total_seconds()
60.0
答案 1 :(得分:0)
小时 select datediff(hh,'02 / 02/2013 00:00:00','02/02/2013 01:02:02')
分钟 select datediff(mi,'02 / 02/2013 00:00:00','02/02/2013 01:02:02')
对于秒 select datediff(ss,'02 / 02/2013 00:00:00','02/02/2013 01:02:02')
白天 select datediff(dd,'02 / 02/2013 00:00:00','02/03/2013 01:02:02')
月份 select datediff(mm,'02 / 02/2013 00:00:00','03/03/2013 01:02:02')
一年 select datediff(yy,'02 / 02/2013 00:00:00','03/03/2014 01:02:02')
试试这个
答案 2 :(得分:0)
您可以简单地减去两个日期时间对象并获取一个datetime.timedelta对象,该对象将差异存储为datetime.timedeleta(天,秒,微秒)。
所以,例如,你可以做
>>>difference = second_date - first_date
>>>difference
datetime.timedelta(0, 60)
只需使用datetime.timedelta()。seconds
即可访问秒数>>>difference.seconds
60
答案 3 :(得分:0)
如果您使用py2.7,则只需使用delta.total_seconds()
>>> s = datetime(2013, 05, 20, 5, 9, 6)
>>> t = datetime(2013, 05, 21, 6, 29, 30)
>>> u = t - s
>>> u.seconds
4824
>>> u.total_seconds()
91224.0
但是对于早期版本,您需要通过单独添加时间部分来完成。
>>> u.seconds + u.days * 86400
91224