diff options
author | Dima Tyzhnenko <dima@tyzhnenko.name> | 2013-07-15 18:11:07 +0300 |
---|---|---|
committer | Dima Tyzhnenko <dima@tyzhnenko.name> | 2013-07-15 18:11:07 +0300 |
commit | 0226f1a727441746bbe2bc396de5eccea7f395f8 (patch) | |
tree | af3e9999df7214dfc5115c88d2c1ceb3ee7d3e4c | |
parent | 63ab17980da8b31ca02ad31236420ed57006e315 (diff) | |
download | mysqldb1-0226f1a727441746bbe2bc396de5eccea7f395f8.tar.gz |
Fix problem with return None if Datetime field contained microsecond (Issue #24)
-rw-r--r-- | MySQLdb/times.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/MySQLdb/times.py b/MySQLdb/times.py index bc92eb4..f3a92d7 100644 --- a/MySQLdb/times.py +++ b/MySQLdb/times.py @@ -60,9 +60,13 @@ def DateTime_or_None(s): def TimeDelta_or_None(s): try: h, m, s = s.split(':') - h, m, s = int(h), int(m), float(s) - td = timedelta(hours=abs(h), minutes=m, seconds=int(s), - microseconds=int(math.modf(s)[0] * 1000000)) + if '.' in s: + s, ms = s.split('.') + else: + ms = 0 + h, m, s, ms = int(h), int(m), int(s), int(ms) + td = timedelta(hours=abs(h), minutes=m, seconds=s, + microseconds=ms) if h < 0: return -td else: @@ -74,9 +78,13 @@ def TimeDelta_or_None(s): def Time_or_None(s): try: h, m, s = s.split(':') - h, m, s = int(h), int(m), float(s) - return time(hour=h, minute=m, second=int(s), - microsecond=int(math.modf(s)[0] * 1000000)) + if '.' in s: + s, ms = s.split('.') + else: + ms = 0 + h, m, s, ms = int(h), int(m), int(s), int(ms) + return time(hour=h, minute=m, second=s, + microsecond=ms) except ValueError: return None |