2017-06-19 157 views
-1

我有一個捐助者表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值。你想計算哪個? –

回答

0

試試下面的代碼

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

0

那麼這可能是你在找什麼:

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」) –