@@ -568,22 +568,52 @@ public void QueryDateTimeKind(MySqlDateTimeKind kindOption, DateTimeKind kindIn,
568
568
{
569
569
connection . Open ( ) ;
570
570
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 ) ;
572
572
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 )
575
584
{
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
+ }
577
596
} )
578
597
{
579
598
if ( success )
580
599
{
581
600
cmd . ExecuteNonQuery ( ) ;
582
601
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
+ }
587
617
}
588
618
else
589
619
{
0 commit comments