I have a table with scheduled and past payments, and I need to find if there are any two charges made in the same week for the same user/contract.
select count(*
So, I ended up writing a custom date_diff() expression:
class date_diff(expression.FunctionElement):
type = Integer()
name = 'age'
@compiles(date_diff, 'default')
def _default_date_diff(element, compiler, **kw): # pragma: no cover
return "DATEDIFF(%s, %s)" % (compiler.process(element.clauses.clauses[0]),
compiler.process(element.clauses.clauses[1]),
)
@compiles(date_diff, 'mysql')
def _my_date_diff(element, compiler, **kw): # pragma: no cover
return "DATEDIFF(%s, %s)" % (compiler.process(element.clauses.clauses[0]),
compiler.process(element.clauses.clauses[1]),
)
@compiles(date_diff, 'sqlite')
def _sl_date_diff(element, compiler, **kw): # pragma: no cover
return "julianday(%s) - julianday(%s)" % (compiler.process(element.clauses.clauses[0]),
compiler.process(element.clauses.clauses[1]),
)