예제 #1
0
class ExtractSecond(Extract):
    lookup_name = 'second'


DateField.register_lookup(ExtractYear)
DateField.register_lookup(ExtractMonth)
DateField.register_lookup(ExtractDay)
DateField.register_lookup(ExtractWeekDay)
DateField.register_lookup(ExtractWeek)

TimeField.register_lookup(ExtractHour)
TimeField.register_lookup(ExtractMinute)
TimeField.register_lookup(ExtractSecond)

DateTimeField.register_lookup(ExtractHour)
DateTimeField.register_lookup(ExtractMinute)
DateTimeField.register_lookup(ExtractSecond)

ExtractYear.register_lookup(YearExact)
ExtractYear.register_lookup(YearGt)
ExtractYear.register_lookup(YearGte)
ExtractYear.register_lookup(YearLt)
ExtractYear.register_lookup(YearLte)


class TruncBase(TimezoneMixin, Transform):
    arity = 1
    kind = None
    tzinfo = None
예제 #2
0
class ExtractSecond(Extract):
    lookup_name = 'second'


DateField.register_lookup(ExtractYear)
DateField.register_lookup(ExtractMonth)
DateField.register_lookup(ExtractDay)
DateField.register_lookup(ExtractWeekDay)
DateField.register_lookup(ExtractWeek)

TimeField.register_lookup(ExtractHour)
TimeField.register_lookup(ExtractMinute)
TimeField.register_lookup(ExtractSecond)

DateTimeField.register_lookup(ExtractHour)
DateTimeField.register_lookup(ExtractMinute)
DateTimeField.register_lookup(ExtractSecond)

ExtractYear.register_lookup(YearExact)
ExtractYear.register_lookup(YearGt)
ExtractYear.register_lookup(YearGte)
ExtractYear.register_lookup(YearLt)
ExtractYear.register_lookup(YearLte)


class TruncBase(TimezoneMixin, Transform):
    arity = 1
    kind = None
    tzinfo = None
예제 #3
0

class ExtractSecond(Extract):
    lookup_name = 'second'


DateField.register_lookup(ExtractYear)
DateField.register_lookup(ExtractMonth)
DateField.register_lookup(ExtractDay)
DateField.register_lookup(ExtractWeekDay)

TimeField.register_lookup(ExtractHour)
TimeField.register_lookup(ExtractMinute)
TimeField.register_lookup(ExtractSecond)

DateTimeField.register_lookup(ExtractYear)
DateTimeField.register_lookup(ExtractMonth)
DateTimeField.register_lookup(ExtractDay)
DateTimeField.register_lookup(ExtractWeekDay)
DateTimeField.register_lookup(ExtractHour)
DateTimeField.register_lookup(ExtractMinute)
DateTimeField.register_lookup(ExtractSecond)

ExtractYear.register_lookup(YearExact)
ExtractYear.register_lookup(YearGt)
ExtractYear.register_lookup(YearGte)
ExtractYear.register_lookup(YearLt)
ExtractYear.register_lookup(YearLte)


class TruncBase(TimezoneMixin, Transform):
예제 #4
0
from django.db.models import Transform
from django.db.models import DateTimeField, TimeField
from django.utils.functional import cached_property


class TimeValue(Transform):
    lookup_name = 'time'
    function = 'time'

    def as_sql(self, compiler, connection):
        lhs, params = compiler.compile(self.lhs)
        return 'TIME({})'.format(lhs), params

    @cached_property
    def output_field(self):
        return TimeField()


DateTimeField.register_lookup(TimeValue)
예제 #5
0
파일: query.py 프로젝트: bernd-wechner/CoGs
from django.db.models import Transform, DateTimeField, IntegerField


class DateTimeLocal(Transform):
    lookup_name = 'local'

    def as_sql(self, compiler, connection):
        lhs, params = compiler.compile(self.lhs)
        dt = lhs  # has quotes like "table_name"."date_time"
        tz = lhs[:-1] + "_tz" + lhs[-1]  # Add _tz to field name
        return f"{dt} AT TIME ZONE {tz}", params


DateTimeField.register_lookup(DateTimeLocal)


class MonthWeek(Transform):
    lookup_name = 'month_week'

    @property
    def output_field(self):
        return IntegerField()

    def as_sql(self, compiler, connection):
        lhs, params = compiler.compile(self.lhs)
        return f"TO_CHAR( {lhs}, 'W' )::integer", params


DateTimeField.register_lookup(MonthWeek)

예제 #6
0
    @property
    def output_field(self):
        return DateField()


class StartClassDate(Transform):
    lookup_name = 'datestart'

    @property
    def output_field(self):
        return DateField()


DateField.register_lookup(AddDate)
DateTimeField.register_lookup(AddDate)
DateField.register_lookup(DateDiff)
DateTimeField.register_lookup(DateDiff)
DateField.register_lookup(DayYear)
DateTimeField.register_lookup(DayYear)
DateField.register_lookup(NumDay)
DateTimeField.register_lookup(NumDay)

SmallIntegerField.register_lookup(DateFromNum)
PositiveIntegerField.register_lookup(DateFromNum)
IntegerField.register_lookup(DateFromNum)
# AddDate, DateDiff, DayYear, NumDay, DateFromNum, MakeDate, DateToday

# Find the difference between two dates, may span over some years.
# Create a new date by adding or subtracting an integer of days. date1: datetime, num: integer -> datetime
# Determine if a date is before or after another date.