Merge pull request #255 from emosbaugh/timedelta_negative
Allow for mysql negative values with 0 hour timedelta
This commit is contained in:
@@ -152,12 +152,16 @@ def convert_timedelta(obj):
|
||||
(obj, tail) = obj.split('.')
|
||||
microseconds = float('0.' + tail) * 1e6
|
||||
hours, minutes, seconds = obj.split(':')
|
||||
negate = 1
|
||||
if hours.startswith("-"):
|
||||
hours = hours[1:]
|
||||
negate = -1
|
||||
tdelta = datetime.timedelta(
|
||||
hours = int(hours),
|
||||
minutes = int(minutes),
|
||||
seconds = int(seconds),
|
||||
microseconds = int(microseconds)
|
||||
)
|
||||
) * negate
|
||||
return tdelta
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
@@ -112,10 +112,14 @@ class TestConversion(base.PyMySQLTestCase):
|
||||
""" test timedelta conversion """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("select time('12:30'), time('23:12:59'), time('23:12:59.05100')")
|
||||
c.execute("select time('12:30'), time('23:12:59'), time('23:12:59.05100'), time('-12:30'), time('-23:12:59'), time('-23:12:59.05100'), time('-00:30')")
|
||||
self.assertEqual((datetime.timedelta(0, 45000),
|
||||
datetime.timedelta(0, 83579),
|
||||
datetime.timedelta(0, 83579, 51000)),
|
||||
datetime.timedelta(0, 83579, 51000),
|
||||
-datetime.timedelta(0, 45000),
|
||||
-datetime.timedelta(0, 83579),
|
||||
-datetime.timedelta(0, 83579, 51000),
|
||||
-datetime.timedelta(0, 1800)),
|
||||
c.fetchone())
|
||||
|
||||
def test_datetime(self):
|
||||
|
||||
Reference in New Issue
Block a user