siasanaee
siasanaee

Reputation: 21

Convert this raw sql to django query

hi im trying to convert this sql code into django query

select * from KnowledgeManagement_tblknowledge where (14010705 - CreateDate) >=10000 and (register_status = 7 or register_status = 9)

I have done a part of it

    knowledges = TblKnowledge.objects.filter(Status__gte=0).filter(Q(register_status=7) | Q(register_status=9))

but this part seems to be a little tricky

where (14010705 - CreateDate) >=10000

BTW CreateDate is an integer filed and saves the current date in solar date and 14010705 is a solar date 14010705 = 1401/07/05

Upvotes: 0

Views: 50

Answers (1)

Jerome Leclanche
Jerome Leclanche

Reputation: 703

Simplify your expression. 14000705 is a hardcoded value, yes?

Equivalent operations: x - y >= z is the same as x >= y + z, y <= x - z, or y + z <= x.

So, (14010705 - CreateDate) >= 10000 is equivalent to 14010705 + 10000 <= CreateDate, or 14020705 <= CreateDate. And if you want to flip the side: CreateDate > 14020705.

So:

TblKnowledge.objects.filter(CreateDate__gt=14020705) 

Upvotes: 1

Related Questions