@@ -568,22 +568,52 @@ public void QueryDateTimeKind(MySqlDateTimeKind kindOption, DateTimeKind kindIn,
568568 {
569569 connection . Open ( ) ;
570570
571- var dateTimeIn = new DateTime ( 2002 , 3 , 4 , 5 , 6 , 7 , 890 , kindIn ) ;
571+ var dateTimeIn = new DateTime ( 2001 , 2 , 3 , 14 , 5 , 6 , 789 , kindIn ) ;
572572 using ( var cmd = new MySqlCommand ( @"drop table if exists date_time_kind;
573- create table date_time_kind(rowid integer not null primary key auto_increment, dt datetime(3) not null);
574- insert into date_time_kind(dt) values(?)" , connection )
573+ create table date_time_kind(
574+ rowid integer not null primary key auto_increment,
575+ d date,
576+ dt0 datetime(0),
577+ dt1 datetime(1),
578+ dt2 datetime(2),
579+ dt3 datetime(3),
580+ dt4 datetime(4),
581+ dt5 datetime(5),
582+ dt6 datetime(6));
583+ insert into date_time_kind(d, dt0, dt1, dt2, dt3, dt4, dt5, dt6) values(?, ?, ?, ?, ?, ?, ?, ?)" , connection )
575584 {
576- Parameters = { new MySqlParameter { Value = dateTimeIn } }
585+ Parameters =
586+ {
587+ new MySqlParameter { Value = dateTimeIn } ,
588+ new MySqlParameter { Value = dateTimeIn } ,
589+ new MySqlParameter { Value = dateTimeIn } ,
590+ new MySqlParameter { Value = dateTimeIn } ,
591+ new MySqlParameter { Value = dateTimeIn } ,
592+ new MySqlParameter { Value = dateTimeIn } ,
593+ new MySqlParameter { Value = dateTimeIn } ,
594+ new MySqlParameter { Value = dateTimeIn } ,
595+ }
577596 } )
578597 {
579598 if ( success )
580599 {
581600 cmd . ExecuteNonQuery ( ) ;
582601 long lastInsertId = cmd . LastInsertedId ;
583- cmd . CommandText = $ "select dt from date_time_kind where rowid = { lastInsertId } ;";
584- var dateTimeOut = ( DateTime ? ) cmd . ExecuteScalar ( ) ;
585- Assert . Equal ( dateTimeIn , dateTimeOut ) ;
586- Assert . Equal ( kindOption , ( MySqlDateTimeKind ) dateTimeOut . Value . Kind ) ;
602+ cmd . CommandText = $ "select d, dt0, dt1, dt2, dt3, dt4, dt5, dt6 from date_time_kind where rowid = { lastInsertId } ;";
603+ using ( var reader = cmd . ExecuteReader ( ) )
604+ {
605+ Assert . True ( reader . Read ( ) ) ;
606+ Assert . Equal ( new DateTime ( 2001 , 2 , 3 ) , reader . GetValue ( 0 ) ) ;
607+ Assert . Equal ( new DateTime ( 2001 , 2 , 3 , 14 , 5 , AppConfig . SupportedFeatures . HasFlag ( ServerFeatures . RoundDateTime ) ? 7 : 6 , kindIn ) , reader . GetValue ( 1 ) ) ;
608+ Assert . Equal ( new DateTime ( 2001 , 2 , 3 , 14 , 5 , 6 , AppConfig . SupportedFeatures . HasFlag ( ServerFeatures . RoundDateTime ) ? 800 : 700 , kindIn ) , reader . GetValue ( 2 ) ) ;
609+ Assert . Equal ( new DateTime ( 2001 , 2 , 3 , 14 , 5 , 6 , AppConfig . SupportedFeatures . HasFlag ( ServerFeatures . RoundDateTime ) ? 790 : 780 , kindIn ) , reader . GetValue ( 3 ) ) ;
610+ Assert . Equal ( dateTimeIn , reader . GetValue ( 4 ) ) ;
611+ Assert . Equal ( dateTimeIn , reader . GetValue ( 5 ) ) ;
612+ Assert . Equal ( dateTimeIn , reader . GetValue ( 6 ) ) ;
613+ Assert . Equal ( dateTimeIn , reader . GetValue ( 7 ) ) ;
614+ for ( int i = 0 ; i < 7 ; i ++ )
615+ Assert . Equal ( kindOption , ( MySqlDateTimeKind ) reader . GetDateTime ( i ) . Kind ) ;
616+ }
587617 }
588618 else
589619 {
0 commit comments