          if connection.features.has_native_duration_field:
              return value
          if value is None:
              return None
          # Discard any fractional microseconds due to floating point arithmetic.
          return round(value.total_seconds() * 1000000)
  
      def get_db_converters(self, connection):
          converters = []
          if not connection.features.has_native_duration_field:
              converters.append(connection.ops.convert_durationfield_value)
 
</s> remove     return (left - right).total_seconds() * 1000000
 </s> add     return duration_microseconds(left - right) </s> remove         return "INTERVAL '%06f' SECOND_MICROSECOND" % timedelta.total_seconds()
 </s> add         return 'INTERVAL %s MICROSECOND' % duration_microseconds(timedelta) </s> remove         duration = datetime.timedelta(days=123, seconds=123, microseconds=123)
 </s> add         duration = datetime.timedelta(microseconds=8999999999999999)
        return duration_microseconds(value)
          if connection.features.has_native_duration_field:
              return value
          if value is None:
              return None
        return duration_microseconds(value)
        return duration_microseconds(value)
  
      def get_db_converters(self, connection):
          converters = []
          if not connection.features.has_native_duration_field:
              converters.append(connection.ops.convert_durationfield_value)
keep keep keep keep replace replace keep keep keep keep keep
 Fixed #28926 -- Fixed loss of precision of big DurationField values on SQLite and MySQL. 
django/db/models/fields/__init__.py