mirror of https://github.com/django/django.git
Fixed #20012 -- test_year_lookup_edge_case fails under Oracle
Used formatted date instead of datetime object for the end of the year range, as the datetime object loses fractions-of-seconds when inserted into the db.
This commit is contained in:
parent
8fd40b9ae7
commit
dfe6ea3b1f
|
@ -436,6 +436,16 @@ WHEN (new.%(col_name)s IS NULL)
|
||||||
second = '%s-12-31'
|
second = '%s-12-31'
|
||||||
return [first % value, second % value]
|
return [first % value, second % value]
|
||||||
|
|
||||||
|
def year_lookup_bounds_for_datetime_field(self, value):
|
||||||
|
# The default implementation uses datetime objects for the bounds.
|
||||||
|
# This must be overridden here, to use a formatted date (string) as
|
||||||
|
# 'second' instead -- cx_Oracle chops the fraction-of-second part
|
||||||
|
# off of datetime objects, leaving almost an entire second out of
|
||||||
|
# the year under the default implementation.
|
||||||
|
first = '%s-01-01'
|
||||||
|
second = '%s-12-31 23:59:59.999999'
|
||||||
|
return [first % value, second % value]
|
||||||
|
|
||||||
def combine_expression(self, connector, sub_expressions):
|
def combine_expression(self, connector, sub_expressions):
|
||||||
"Oracle requires special cases for %% and & operators in query expressions"
|
"Oracle requires special cases for %% and & operators in query expressions"
|
||||||
if connector == '%%':
|
if connector == '%%':
|
||||||
|
|
Loading…
Reference in New Issue