Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Фильтр данных по разности дат в полях [RSS Feed]

#1 Янв. 15, 2010 22:28:25

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтр данных по разности дат в полях

Всем привет! Есть задача: выбрать строки, у которых разница в датах между 2-мя определенными колонками меньше 5-ти дней (для примера). Дело в том, что количество дней/часов/минут/секунд может меняться. Так же нужно еще применять другие фильтры и иметь возможность отсортировать по разнице дат. Теперь к практике. Есть модель:

from django.db import models
class DateTest (models.Model):
name = models.CharField (max_length=10, unique = True)
bool_1 = models.BooleanField ()
date_reg = models.DateTimeField (null=True, blank=True, u'Дата регистрации')
bool_2 = models.BooleanField (default = 0)
error_msg = models.CharField(blank=True, max_length=300, verbose_name=u'Ошибка')
comment = models.CharField(blank=True, max_length=100, verbose_name=u'Комментарии')
date_upd = models.DateTimeField (auto_now_add=True, verbose_name=u'Дата обновления')

class Meta:
db_table = 'date_test'

def __unicode__(self):
return u"%s" % (self.name)
Как с помощью Django ORM организовать следующий запрос:
select 
dt.id,
dt.name,
dt.bool_1,
dt.date_reg,
dt.bool_2,
dt.error_msg,
dt.comment,
dt.date_upd,
dt.date_upd - dt.date_reg as date_interval
from date_test dt where
(dt.date_upd - dt.date_reg) < interval '432000' second
order by date_interval;



Отредактировано (Янв. 15, 2010 22:29:40)

Офлайн

#2 Янв. 17, 2010 00:54:49

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#3 Янв. 17, 2010 21:59:58

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтр данных по разности дат в полях

Спасибо, буду копать в эту сторону :).



Офлайн

  • Начало
  • » Django
  • » Фильтр данных по разности дат в полях[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version