如何从数据库中减去当前日期与日期

问题描述:

我有一个捐助者表lastAttendance列。我怎样才能用选定的最后出勤日期减去当天?如何从数据库中减去当前日期与日期

d0 = Donor.objects.only("lastAttendance") 
d1 = datetime.now() 
delta = d1 - d0 

错误:

unsupported operand type(s) for -: 'datetime.datetime' and 'QuerySet' 
+1

D0是一个QuerySet,即与他们lastAttendance领域的所有捐助对象的容器。你想计算哪一个日期? –

+0

今天 - lastAttendance(天之间的差异) – kasia

+0

这是如何以任何方式回答我的问题?你有*多个捐赠对象,每个都有自己的lastAttendance值。你想计算哪个? –

有Django的一个timesince功能。在文档中阅读它。 https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#timesince如果你想在天的答案

试试下面的代码

from django.utils import timezone 
d0 = Donor.objects.only("lastAttendance")[0] 
d1 = timezone.now() 
delta = d1 - d0.lastAttendance 
+0

仍然是相同的错误: 不支持的操作数类型(s)for - :'datetime.datetime'和'QuerySet' – kasia

+0

@kasia:我编辑了答案 – Arun

+0

我仍然得到相同的错误.. – kasia

那么这可能是你在找什么:

d1 = datetime.now() //---------------current date 
d2 = datetime.strptime(d2, "%Y-%m-%d") 
abs((d1 - d2).days) 
+0

kasia:您可以相应地更改.days的东西... –

+0

d2 = datetime.strptime(d2,“%Y-%m-%d”) 我必须在这里添加lastAttendance日期从我的数据库,所以在括号我改变了D0为D0,我得到这个:strptime()参数1必须是字符串,而不是QuerySet – kasia

+0

@ kasia确保操作数是datetime类型。如果d0是字符串类型,则将其转换为datetime。这里是语法:datetime.strptime(d0,“%Y-%m-%d”) –