django1/django/db/backends/oracle/functions.py

25 lines
818 B
Python
Raw Normal View History

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, **extra):
output_field = extra.pop('output_field', DecimalField())
super().__init__(expression, output_field=output_field, **extra)
class SecondsToInterval(Func):
function = 'NUMTODSINTERVAL'
template = "%(function)s(%(expressions)s, 'SECOND')"
def __init__(self, expression, **extra):
output_field = extra.pop('output_field', DurationField())
super().__init__(expression, output_field=output_field, **extra)