mirror of https://github.com/sgoudham/Enso-Bot.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
768 B
Python
23 lines
768 B
Python
5 years ago
|
from django.db.models import DecimalField, DurationField, Func
|
||
|
|
||
|
|
||
|
class IntervalToSeconds(Func):
|
||
|
function = ''
|
||
|
template = """
|
||
|
EXTRACT(day from %(expressions)s) * 86400 +
|
||
|
EXTRACT(hour from %(expressions)s) * 3600 +
|
||
|
EXTRACT(minute from %(expressions)s) * 60 +
|
||
|
EXTRACT(second from %(expressions)s)
|
||
|
"""
|
||
|
|
||
|
def __init__(self, expression, *, output_field=None, **extra):
|
||
|
super().__init__(expression, output_field=output_field or DecimalField(), **extra)
|
||
|
|
||
|
|
||
|
class SecondsToInterval(Func):
|
||
|
function = 'NUMTODSINTERVAL'
|
||
|
template = "%(function)s(%(expressions)s, 'SECOND')"
|
||
|
|
||
|
def __init__(self, expression, *, output_field=None, **extra):
|
||
|
super().__init__(expression, output_field=output_field or DurationField(), **extra)
|