2017-06-19 2 views
-1

J'ai une table de donneur avec la colonne lastAttendance. Comment puis-je soustraire le jour en cours avec la date de dernière visite sélectionnée?Comment soustraire la date du jour avec la date de la base de données

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

Erreur:

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

d0 est un queryset, soit un conteneur de tous vos objets donateurs avec leurs champs de lastAttendance. Lequel voulez-vous calculer la date pour? –

+0

aujourd'hui - lastAttendance (différence entre les jours) – kasia

+0

Comment cela a-t-il répondu à ma question? Vous avez * plusieurs * objets de donateur, chacun avec sa propre valeur lastAttendance. Lequel voulez-vous calculer? –

Répondre

0

Essayez le code suivant

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

toujours la même erreur: type (s) d'opérande non supporté (s) pour -: 'datetime.datetime' et 'QuerySet' – kasia

+0

@kasia: J'ai modifié la réponse – Arun

+0

Je reçois toujours la même erreur .. – kasia

0

si vous voulez la réponse dans les jours, cela pourrait être ce que vous cherchez:

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

kasia: Vous pouvez changer la chose .days en conséquence ... –

+0

d2 = datetime.strptime (d2, "% Y-% m-% d") Je dois ajouter ici les dates de dernière date de ma base de données, donc entre parenthèses j'ai changé d2 pour d0 et je reçois ceci: l'argument strptime() 1 doit être une chaîne, pas QuerySet – kasia

+0

@kasia assurez-vous que les opérandes sont de type datetime. si d0 est de type chaîne, convertissez-le en datetime. Voici la syntaxe: datetime.strptime (d0, "% Y-% m-% d") –