mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #22394 -- Refactored built-in datetime lookups to transforms.
This commit is contained in:
parent
039d7881b4
commit
b5e0eede40
7 changed files with 251 additions and 109 deletions
|
@ -2431,36 +2431,45 @@ numbers and even characters.
|
|||
year
|
||||
~~~~
|
||||
|
||||
For date and datetime fields, an exact year match. Takes an integer year.
|
||||
For date and datetime fields, an exact year match. Allows chaining additional
|
||||
field lookups. Takes an integer year.
|
||||
|
||||
Example::
|
||||
|
||||
Entry.objects.filter(pub_date__year=2005)
|
||||
Entry.objects.filter(pub_date__year__gte=2005)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE pub_date BETWEEN '2005-01-01' AND '2005-12-31';
|
||||
SELECT ... WHERE pub_date >= '2005-01-01';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
|
||||
current time zone before filtering.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: month
|
||||
|
||||
month
|
||||
~~~~~
|
||||
|
||||
For date and datetime fields, an exact month match. Takes an integer 1
|
||||
(January) through 12 (December).
|
||||
For date and datetime fields, an exact month match. Allows chaining additional
|
||||
field lookups. Takes an integer 1 (January) through 12 (December).
|
||||
|
||||
Example::
|
||||
|
||||
Entry.objects.filter(pub_date__month=12)
|
||||
Entry.objects.filter(pub_date__month__gte=6)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE EXTRACT('month' FROM pub_date) = '12';
|
||||
SELECT ... WHERE EXTRACT('month' FROM pub_date) >= '6';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
|
@ -2468,20 +2477,27 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
|
|||
current time zone before filtering. This requires :ref:`time zone definitions
|
||||
in the database <database-time-zone-definitions>`.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: day
|
||||
|
||||
day
|
||||
~~~
|
||||
|
||||
For date and datetime fields, an exact day match. Takes an integer day.
|
||||
For date and datetime fields, an exact day match. Allows chaining additional
|
||||
field lookups. Takes an integer day.
|
||||
|
||||
Example::
|
||||
|
||||
Entry.objects.filter(pub_date__day=3)
|
||||
Entry.objects.filter(pub_date__day__gte=3)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE EXTRACT('day' FROM pub_date) = '3';
|
||||
SELECT ... WHERE EXTRACT('day' FROM pub_date) >= '3';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
|
@ -2492,12 +2508,17 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
|
|||
current time zone before filtering. This requires :ref:`time zone definitions
|
||||
in the database <database-time-zone-definitions>`.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: week_day
|
||||
|
||||
week_day
|
||||
~~~~~~~~
|
||||
|
||||
For date and datetime fields, a 'day of the week' match.
|
||||
For date and datetime fields, a 'day of the week' match. Allows chaining
|
||||
additional field lookups.
|
||||
|
||||
Takes an integer value representing the day of week from 1 (Sunday) to 7
|
||||
(Saturday).
|
||||
|
@ -2505,6 +2526,7 @@ Takes an integer value representing the day of week from 1 (Sunday) to 7
|
|||
Example::
|
||||
|
||||
Entry.objects.filter(pub_date__week_day=2)
|
||||
Entry.objects.filter(pub_date__week_day__gte=2)
|
||||
|
||||
(No equivalent SQL code fragment is included for this lookup because
|
||||
implementation of the relevant query varies among different database engines.)
|
||||
|
@ -2517,66 +2539,91 @@ When :setting:`USE_TZ` is ``True``, datetime fields are converted to the
|
|||
current time zone before filtering. This requires :ref:`time zone definitions
|
||||
in the database <database-time-zone-definitions>`.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: hour
|
||||
|
||||
hour
|
||||
~~~~
|
||||
|
||||
For datetime fields, an exact hour match. Takes an integer between 0 and 23.
|
||||
For datetime fields, an exact hour match. Allows chaining additional field
|
||||
lookups. Takes an integer between 0 and 23.
|
||||
|
||||
Example::
|
||||
|
||||
Event.objects.filter(timestamp__hour=23)
|
||||
Event.objects.filter(timestamp__hour__gte=12)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE EXTRACT('hour' FROM timestamp) = '23';
|
||||
SELECT ... WHERE EXTRACT('hour' FROM timestamp) >= '12';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
When :setting:`USE_TZ` is ``True``, values are converted to the current time
|
||||
zone before filtering.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: minute
|
||||
|
||||
minute
|
||||
~~~~~~
|
||||
|
||||
For datetime fields, an exact minute match. Takes an integer between 0 and 59.
|
||||
For datetime fields, an exact minute match. Allows chaining additional field
|
||||
lookups. Takes an integer between 0 and 59.
|
||||
|
||||
Example::
|
||||
|
||||
Event.objects.filter(timestamp__minute=29)
|
||||
Event.objects.filter(timestamp__minute__gte=29)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE EXTRACT('minute' FROM timestamp) = '29';
|
||||
SELECT ... WHERE EXTRACT('minute' FROM timestamp) >= '29';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
When :setting:`USE_TZ` is ``True``, values are converted to the current time
|
||||
zone before filtering.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: second
|
||||
|
||||
second
|
||||
~~~~~~
|
||||
|
||||
For datetime fields, an exact second match. Takes an integer between 0 and 59.
|
||||
For datetime fields, an exact second match. Allows chaining additional field
|
||||
lookups. Takes an integer between 0 and 59.
|
||||
|
||||
Example::
|
||||
|
||||
Event.objects.filter(timestamp__second=31)
|
||||
Event.objects.filter(timestamp__second__gte=31)
|
||||
|
||||
SQL equivalent::
|
||||
|
||||
SELECT ... WHERE EXTRACT('second' FROM timestamp) = '31';
|
||||
SELECT ... WHERE EXTRACT('second' FROM timestamp) >= '31';
|
||||
|
||||
(The exact SQL syntax varies for each database engine.)
|
||||
|
||||
When :setting:`USE_TZ` is ``True``, values are converted to the current time
|
||||
zone before filtering.
|
||||
|
||||
.. versionchanged:: 1.9
|
||||
|
||||
Allowed chaining additional field lookups.
|
||||
|
||||
.. fieldlookup:: isnull
|
||||
|
||||
isnull
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue