0

在我的数据库中,我以以下格式存储了日期时间。我想在几秒钟内得到两个样本之间的差异。有什么简单的方法可用吗?

   u'2013-05-20 05:09:06'
   u'2013-05-20 05:10:06'
4

4 回答 4

5

使用日期时间模块。

>>> 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
于 2013-05-20T07:14:53.467 回答
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')

试试这个

于 2013-05-20T07:27:12.163 回答
0

您可以简单地减去两个 datetime 对象并得到一个 datetime.timedelta 对象,它将差值存储为 datetime.timedeleta(days, seconds, microseconds)。

所以,例如,你可以做

>>>difference = second_date - first_date
>>>difference
datetime.timedelta(0, 60)

可以简单地使用 datetime.timedelta().seconds 访问秒

>>>difference.seconds
60
于 2013-05-20T07:28:18.753 回答
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
于 2013-05-20T07:39:50.150 回答