https://docs.djangoproject.com/en/1.11/ref/models/database-functions/#extract

MyModel.objects.order_by('birthday__month', 'birthday__day')

From: django-users@googlegroups.com [mailto:django-users@googlegroups.com] On 
Behalf Of Dan Tagg
Sent: Tuesday, November 21, 2017 12:58 PM
To: django-users@googlegroups.com
Subject: Re: How to get as result a list of all the users ordered by birthday 
(month day), ignoring year

Hi Roberta,

I haven't tested it but assuming you want the ordering to happen within the 
database you may be able to do it with a combination of 
TIMESTAMPDIFF<https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff>
 and 
MOD<https://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html#function_mod>.

Something like MOD( TIMESTAMPDIFF( 'SECOND', birthday, '1900-01-01'), 31556951) 
assuming you're using MySQL.

On average there are 365.2425 days per year, which equates to 31,556,951 
seconds.

Dan

On 21 November 2017 at 15:52, Roberta Takenaka Granero 
<takenaka.robe...@gmail.com<mailto:takenaka.robe...@gmail.com>> wrote:
Dear Roy
I had already seen that link. But I didn't like the solution. Anyway it works, 
so I am using it for while.

Thank you

2017-11-17 11:13 GMT-02:00 Roy Shillingburg 
<roy...@gmail.com<mailto:roy...@gmail.com>>:
https://stackoverflow.com/questions/4236226/ordering-a-django-queryset-by-a-datetimes-month-day



On Friday, November 17, 2017 at 7:19:43 AM UTC-5, Roberta Takenaka Granero 
wrote:
In models:

birthday = models.DateField()

def birthday_month_day(self):
      # returns month and day
      return '12-31'


In views, I expect to see something pythonic like this:

User.objects.all().order_by('birthday_month_day')

I know it does not work because birthday_month_day is not a column in database.

The question is how to get as result a list of all the users ordered by 
birthday (month + day), ignoring year. (queryset order_by DateField month day)

Can you help me? Anyone has faced this question before?

Thanks



--
Roberta Takenaka
--
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
django-users+unsubscr...@googlegroups.com<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to 
django-users@googlegroups.com<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/97d66095-d7a5-42c9-ad99-673fac39dac5%40googlegroups.com<https://groups.google.com/d/msgid/django-users/97d66095-d7a5-42c9-ad99-673fac39dac5%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.



--
Roberta Takenaka
--
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
django-users+unsubscr...@googlegroups.com<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to 
django-users@googlegroups.com<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAJ9dYMGUbq-QF%3Devx7u%3DtLPatWYUKCQQ0Qd-ks9Sjs3f_kP8SA%40mail.gmail.com<https://groups.google.com/d/msgid/django-users/CAJ9dYMGUbq-QF%3Devx7u%3DtLPatWYUKCQQ0Qd-ks9Sjs3f_kP8SA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

For more options, visit https://groups.google.com/d/optout.



--
Wildman and Herring Limited, Registered Office: 28 Brock Street, Bath, United 
Kingdom, BA1 2LN, Company no: 05766374
--
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
django-users+unsubscr...@googlegroups.com<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to 
django-users@googlegroups.com<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPZHCY4OyC9XnEMjSfbT6G9Zd6K1-TOa6ZPukw%3DowcLG3xUW7w%40mail.gmail.com<https://groups.google.com/d/msgid/django-users/CAPZHCY4OyC9XnEMjSfbT6G9Zd6K1-TOa6ZPukw%3DowcLG3xUW7w%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/ee4ced03d84e41f59f131125771cea8b%40ISS1.ISS.LOCAL.
For more options, visit https://groups.google.com/d/optout.

Reply via email to