[1.8.x] Fixed #26498 -- Fixed TimeField microseconds round-tripping on MySQL and SQLite.
Thanks adamchainz for the report and review.
Backport of d3c87a2425
from master
This commit is contained in:
parent
a61b26a651
commit
0a411b2224
|
@ -125,7 +125,7 @@ def typecast_time(s): # does NOT store time zone information
|
||||||
seconds, microseconds = seconds.split('.')
|
seconds, microseconds = seconds.split('.')
|
||||||
else:
|
else:
|
||||||
microseconds = '0'
|
microseconds = '0'
|
||||||
return datetime.time(int(hour), int(minutes), int(seconds), int(float('.' + microseconds) * 1000000))
|
return datetime.time(int(hour), int(minutes), int(seconds), int((microseconds + '000000')[:6]))
|
||||||
|
|
||||||
|
|
||||||
def typecast_timestamp(s): # does NOT store time zone information
|
def typecast_timestamp(s): # does NOT store time zone information
|
||||||
|
|
|
@ -9,4 +9,5 @@ Django 1.8.13 fixes several bugs in 1.8.12.
|
||||||
Bugfixes
|
Bugfixes
|
||||||
========
|
========
|
||||||
|
|
||||||
* ...
|
* Fixed ``TimeField`` microseconds round-tripping on MySQL and SQLite
|
||||||
|
(:ticket:`26498`).
|
||||||
|
|
|
@ -27,6 +27,9 @@ TEST_CASES = {
|
||||||
('00:00:12', datetime.time(0, 0, 12)),
|
('00:00:12', datetime.time(0, 0, 12)),
|
||||||
('00:00:12.5', datetime.time(0, 0, 12, 500000)),
|
('00:00:12.5', datetime.time(0, 0, 12, 500000)),
|
||||||
('7:22:13.312', datetime.time(7, 22, 13, 312000)),
|
('7:22:13.312', datetime.time(7, 22, 13, 312000)),
|
||||||
|
('12:45:30.126631', datetime.time(12, 45, 30, 126631)),
|
||||||
|
('12:45:30.126630', datetime.time(12, 45, 30, 126630)),
|
||||||
|
('12:45:30.123456789', datetime.time(12, 45, 30, 123456)),
|
||||||
),
|
),
|
||||||
'typecast_timestamp': (
|
'typecast_timestamp': (
|
||||||
('', None),
|
('', None),
|
||||||
|
|
Loading…
Reference in New Issue