From ae6fa914aa2f43d39ae491ac7d3140dda69702fa Mon Sep 17 00:00:00 2001 From: Sergey Fedoseev Date: Fri, 29 Dec 2017 03:35:41 +0500 Subject: Fixed #28926 -- Fixed loss of precision of big DurationField values on SQLite and MySQL. --- django/db/backends/sqlite3/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'django/db/backends/sqlite3') diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index d15352dcc6..d3caa6d12a 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -17,6 +17,7 @@ from django.utils import timezone from django.utils.dateparse import ( parse_date, parse_datetime, parse_duration, parse_time, ) +from django.utils.duration import duration_microseconds from .client import DatabaseClient # isort:skip from .creation import DatabaseCreation # isort:skip @@ -471,7 +472,7 @@ def _sqlite_time_diff(lhs, rhs): def _sqlite_timestamp_diff(lhs, rhs): left = backend_utils.typecast_timestamp(lhs) right = backend_utils.typecast_timestamp(rhs) - return (left - right).total_seconds() * 1000000 + return duration_microseconds(left - right) def _sqlite_regexp(re_pattern, re_string): -- cgit v1.3