如何从python中的sql中减去日期中的日期

时间:2014-12-24 20:00:05

标签: python python-2.7 date-arithmetic

我运行一个sql查询,返回'2015-03-01T17:09:00.000+0000'格式的日期我想从今天的日期中减去这个。

我今天的日期如下:

import datetime
now = datetime.datetime.now()

格式似乎没有排列,我无法弄清楚标准化格式。

2 个答案:

答案 0 :(得分:2)

您可以使用datetime模块中的strptime来使用格式字符串从查询结果中获取兼容python的日期时间。 (您可能需要使用格式字符串来适应您的情况)

ts = '2015-03-01T17:09:00.000+0000' to a format string like
f = '%Y-%m-%dT%H:%M:%S.%f%z'
date_from_sql = datetime.datetime.strptime(ts, f)
now = datetime.datetime.now()
delta = date_from_sql - now

.000可能是微秒(格式字符串中用%f表示),+ 0000是utc偏移量(格式字符串中用%z表示)。请查看此更多格式选项:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

查看此主题的示例:what is the proper way to convert between mysql datetime and python timestamp?

在strptime https://docs.python.org/2/library/datetime.html#datetime.datetime.strptime

上查看此内容以获取更多信息

答案 1 :(得分:0)

在Python中的两个日期时间对象之间获取 delta 非常简单,只需减去它们。

import datetime
d1 = datetime.datetime.now()
d2 = datetime.datetime.now()

delta = d2 - d1
print delta.total_seconds()

d2 - d1返回一个datetime.timedelta对象,从中可以获得两个日期之间的总差异。

至于格式化日期,您可以阅读将字符串格式化为日期时间对象,将日期时间对象格式化为字符串 here

您将了解strftime()和strptime()函数,使用它们可以获得两个日期时间对象,您可以相互减去它们。