django Queryset with year(date) = '2010'

2019-02-11 21:06发布

问题:

I'm trying to build this query

select * from m_orders where year(order_date) = '2010' 

the field order_date is a DateTime field. I just don't want to use raw sql queries here. Is it even possible to use e.g. MySQL functions in django quersets?

回答1:

You can achieve this without using raw SQL. Use the built in __ mechanism instead (see the documentation for more details). Something like this:

MyOrder.objects.filter(order_date__year = 2010)


回答2:

you can use django's builtin query API for this. no need for any vendor specific code or raw SQL.

it would probably look something like this:

Orders.objects.filter(order_date__year=2010)

http://docs.djangoproject.com/en/dev/topics/db/queries/