@@ -63,12 +63,15 @@ impl FromSql for NaiveDateTime {
6363 TimeUnit :: Microsecond => ( t / 1_000_000 , ( t % 1_000_000 ) * 1000 ) ,
6464 TimeUnit :: Nanosecond => ( t / 1_000_000_000 , t % 1_000_000_000 ) ,
6565 } ;
66- Ok ( NaiveDateTime :: from_timestamp_opt ( secs, nsecs as u32 ) . unwrap ( ) )
67- }
68- ValueRef :: Date32 ( d) => Ok ( NaiveDateTime :: from_timestamp_opt ( 24 * 3600 * ( d as i64 ) , 0 ) . unwrap ( ) ) ,
69- ValueRef :: Time64 ( TimeUnit :: Microsecond , d) => {
70- Ok ( NaiveDateTime :: from_timestamp_opt ( d / 1_000_000 , ( ( d % 1_000_000 ) * 1_000 ) as u32 ) . unwrap ( ) )
66+ Ok ( DateTime :: from_timestamp ( secs, nsecs as u32 ) . unwrap ( ) . naive_utc ( ) )
7167 }
68+ ValueRef :: Date32 ( d) => Ok ( DateTime :: from_timestamp ( 24 * 3600 * ( d as i64 ) , 0 ) . unwrap ( ) . naive_utc ( ) ) ,
69+ ValueRef :: Time64 ( TimeUnit :: Microsecond , d) => Ok ( DateTime :: from_timestamp (
70+ d / 1_000_000 ,
71+ ( ( d % 1_000_000 ) * 1_000 ) as u32 ,
72+ )
73+ . unwrap ( )
74+ . naive_utc ( ) ) ,
7275 ValueRef :: Text ( s) => {
7376 let mut s = std:: str:: from_utf8 ( s) . unwrap ( ) ;
7477 let format = match s. len ( ) {
@@ -206,7 +209,7 @@ mod test {
206209 assert_eq ! ( utc, v2) ;
207210
208211 let v3: DateTime < Utc > = db. query_row ( "SELECT '2016-02-23 23:56:04'" , [ ] , |r| r. get ( 0 ) ) ?;
209- assert_eq ! ( utc - Duration :: milliseconds ( 789 ) , v3) ;
212+ assert_eq ! ( utc - Duration :: try_milliseconds ( 789 ) . unwrap ( ) , v3) ;
210213
211214 let v4: DateTime < Utc > = db. query_row ( "SELECT '2016-02-23 23:56:04.789+00:00'" , [ ] , |r| r. get ( 0 ) ) ?;
212215 assert_eq ! ( utc, v4) ;
0 commit comments