在我的数据库中,我以以下格式存储了日期时间。我想在几秒钟内得到两个样本之间的差异。有什么简单的方法可用吗?
u'2013-05-20 05:09:06'
u'2013-05-20 05:10:06'
使用日期时间模块。
>>> 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
对于时间选择 datediff(hh,'02/02/2013 00:00:00','02/02/2013 01:02:02')
对于分钟选择 datediff(mi,'02/02/2013 00:00:00','02/02/2013 01:02:02')
对于秒选择 datediff(ss,'02/02/2013 00:00:00','02/02/2013 01:02:02')
对于 Day 选择 datediff(dd,'02/02/2013 00:00:00','02/03/2013 01:02:02')
对于月份选择 datediff(mm,'02/02/2013 00:00:00','03/03/2013 01:02:02')
对于年份选择 datediff(yy,'02/02/2013 00:00:00','03/03/2014 01:02:02')
试试这个
您可以简单地减去两个 datetime 对象并得到一个 datetime.timedelta 对象,它将差值存储为 datetime.timedeleta(days, seconds, microseconds)。
所以,例如,你可以做
>>>difference = second_date - first_date
>>>difference
datetime.timedelta(0, 60)
可以简单地使用 datetime.timedelta().seconds 访问秒
>>>difference.seconds
60
如果您使用的是 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