|
@@ -109,10 +109,7 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|
|
return "INTERVAL '%06f' SECOND_MICROSECOND" % timedelta.total_seconds()
|
|
|
|
|
|
def format_for_duration_arithmetic(self, sql):
|
|
|
- if self.connection.features.supports_microsecond_precision:
|
|
|
- return 'INTERVAL %s MICROSECOND' % sql
|
|
|
- else:
|
|
|
- return 'INTERVAL FLOOR(%s / 1000000) SECOND' % sql
|
|
|
+ return 'INTERVAL %s MICROSECOND' % sql
|
|
|
|
|
|
def force_no_ordering(self):
|
|
|
"""
|
|
@@ -178,10 +175,6 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|
|
value = timezone.make_naive(value, self.connection.timezone)
|
|
|
else:
|
|
|
raise ValueError("MySQL backend does not support timezone-aware datetimes when USE_TZ is False.")
|
|
|
-
|
|
|
- if not self.connection.features.supports_microsecond_precision:
|
|
|
- value = value.replace(microsecond=0)
|
|
|
-
|
|
|
return str(value)
|
|
|
|
|
|
def adapt_timefield_value(self, value):
|
|
@@ -258,17 +251,10 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|
|
def subtract_temporals(self, internal_type, lhs, rhs):
|
|
|
lhs_sql, lhs_params = lhs
|
|
|
rhs_sql, rhs_params = rhs
|
|
|
- if self.connection.features.supports_microsecond_precision:
|
|
|
- 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)))"
|
|
|
- ) % {'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
|
|
|
- elif internal_type == 'TimeField':
|
|
|
+ if internal_type == 'TimeField':
|
|
|
return (
|
|
|
- "(TIME_TO_SEC(%s) * POW(10, 6) - TIME_TO_SEC(%s) * POW(10, 6))"
|
|
|
- ) % (lhs_sql, rhs_sql), lhs_params + rhs_params
|
|
|
+ "((TIME_TO_SEC(%(lhs)s) * POW(10, 6) + MICROSECOND(%(lhs)s)) -"
|
|
|
+ " (TIME_TO_SEC(%(rhs)s) * POW(10, 6) + MICROSECOND(%(rhs)s)))"
|
|
|
+ ) % {'lhs': lhs_sql, 'rhs': rhs_sql}, lhs_params * 2 + rhs_params * 2
|
|
|
else:
|
|
|
- return "(TIMESTAMPDIFF(SECOND, %s, %s) * POW(10, 6))" % (rhs_sql, lhs_sql), rhs_params + lhs_params
|
|
|
+ return "TIMESTAMPDIFF(MICROSECOND, %s, %s)" % (rhs_sql, lhs_sql), rhs_params + lhs_params
|