@@ -251,27 +251,31 @@ use std::time::Duration;
251251impl < ' a > Into < Duration > for Value < ' a > {
252252 fn into ( self ) -> Duration {
253253 if let ValueInner :: Time ( mut v) = self . 0 {
254- assert ! ( v. len( ) == 8 || v. len( ) == 12 ) ;
254+ assert ! ( v. len( ) == 0 || v . len ( ) == 8 || v. len( ) == 12 ) ;
255255
256- let neg = v. read_u8 ( ) . unwrap ( ) ;
257- if neg != 0u8 {
258- unimplemented ! ( ) ;
259- }
260-
261- let days = u64:: from ( v. read_u32 :: < LittleEndian > ( ) . unwrap ( ) ) ;
262- let hours = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
263- let minutes = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
264- let seconds = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
265- let micros = if v. len ( ) == 12 {
266- v. read_u32 :: < LittleEndian > ( ) . unwrap ( )
256+ if v. len ( ) == 0 {
257+ Duration :: from_secs ( 0 )
267258 } else {
268- 0
269- } ;
259+ let neg = v. read_u8 ( ) . unwrap ( ) ;
260+ if neg != 0u8 {
261+ unimplemented ! ( ) ;
262+ }
270263
271- Duration :: new (
272- days * 86_400 + hours * 3_600 + minutes * 60 + seconds,
273- micros * 1_000 ,
274- )
264+ let days = u64:: from ( v. read_u32 :: < LittleEndian > ( ) . unwrap ( ) ) ;
265+ let hours = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
266+ let minutes = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
267+ let seconds = u64:: from ( v. read_u8 ( ) . unwrap ( ) ) ;
268+ let micros = if v. len ( ) == 12 {
269+ v. read_u32 :: < LittleEndian > ( ) . unwrap ( )
270+ } else {
271+ 0
272+ } ;
273+
274+ Duration :: new (
275+ days * 86_400 + hours * 3_600 + minutes * 60 + seconds,
276+ micros * 1_000 ,
277+ )
278+ }
275279 } else {
276280 panic ! ( "invalid type conversion from {:?} to datetime" , self )
277281 }
@@ -452,6 +456,12 @@ mod tests {
452456 time:: Duration :: from_secs( 1893 ) ,
453457 ColumnType :: MYSQL_TYPE_TIME
454458 ) ;
459+ rt ! (
460+ dur_zero,
461+ time:: Duration ,
462+ time:: Duration :: from_secs( 0 ) ,
463+ ColumnType :: MYSQL_TYPE_TIME
464+ ) ;
455465 rt ! (
456466 bytes,
457467 & [ u8 ] ,
0 commit comments