On Mon, Oct 12, 2009 at 5:07 PM, aa56280 <aa56...@gmail.com> wrote:

>
> I have a DateTimeField called "created_on" on a model called
> "Documents". It serves as a timestamp for when the record was added.
>
> I'm trying to write a query that will return all Documents created_on
> a particular date, say today. I can make it work if I look for a
> record within a range of dates...
>
> <code>
> today = datetime.datetime.today()
> thirty_days_ago = today - datetime.timedelta(days=30)
> Document.objects.filter(created_on__range=(thirty_days_ago, today))
> </code>
>
> But now, I need to find records that were created on a particular
> date, like, today.
>
> How do I do that?
>
>
today_end = datetime.datetime.combine(datetime.date.today(),
datetime.time.max)
today_start = datetime.datetime.combine(datetime.date.today(),
datetime.time.min)
Document.objects.filter(created_on__range=(today_start, today_end))

You realize your 30-days-ago version of the query returns values that depend
on the current time as well as the current date when the query is run? This
may be rather surprising behavior for people who would likely expect the
list of things created within the last 30 days to be constant over the
course of a day (excepting things added during the day).

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to