From ba4a9862407c8e8574c60b9f911f6b09aff1fa12 Mon Sep 17 00:00:00 2001 From: Sergey Fedoseev Date: Thu, 1 Mar 2018 14:39:17 +0500 Subject: [PATCH] Refs #28459 -- Improved performance of time difference expressions on MySQL. --- django/db/backends/mysql/operations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django/db/backends/mysql/operations.py b/django/db/backends/mysql/operations.py index 2961d6449b..88e47b95ba 100644 --- a/django/db/backends/mysql/operations.py +++ b/django/db/backends/mysql/operations.py @@ -263,8 +263,8 @@ class DatabaseOperations(BaseDatabaseOperations): rhs_sql, rhs_params = rhs if internal_type == 'TimeField': return ( - "((TIME_TO_SEC(%(lhs)s) * POW(10, 6) + MICROSECOND(%(lhs)s)) -" - " (TIME_TO_SEC(%(rhs)s) * POW(10, 6) + MICROSECOND(%(rhs)s)))" + "((TIME_TO_SEC(%(lhs)s) * 1000000 + MICROSECOND(%(lhs)s)) -" + " (TIME_TO_SEC(%(rhs)s) * 1000000 + MICROSECOND(%(rhs)s)))" ) % {'lhs': lhs_sql, 'rhs': rhs_sql}, lhs_params * 2 + rhs_params * 2 else: return "TIMESTAMPDIFF(MICROSECOND, %s, %s)" % (rhs_sql, lhs_sql), rhs_params + lhs_params