@@ -224,7 +224,8 @@ public async Task QueryDt_Test(Func<IDbConnection> connectionFactory)
224224 DataRow row = dt . Rows [ 0 ] ;
225225 Assert . That ( row [ "Col1" ] , Is . EqualTo ( "Value1" ) ) ;
226226 Assert . That ( row [ "Col2" ] , Is . EqualTo ( "ValueA" ) ) ;
227- Assert . That ( row [ "Col3" ] . ToString ( ) . StartsWith ( "2024-01-01" ) , row [ "Col3" ] . ToString ( ) ) ;
227+ DateTime parsedCol3 = DateParse ( row ) ;
228+ Assert . That ( parsedCol3 . Date , Is . EqualTo ( new DateTime ( 2024 , 1 , 1 ) ) , row [ "Col3" ] . ToString ( ) ) ;
228229 }
229230
230231 [ TestCaseSource ( typeof ( DatabaseTestCases ) , nameof ( DatabaseTestCases . TestCases ) ) ]
@@ -240,16 +241,32 @@ public async Task QueryDt_WithSqlMapper_Test(Func<IDbConnection> connectionFacto
240241 Assert . That ( row [ "Col1" ] , Is . EqualTo ( "Value1" ) ) ;
241242 Assert . That ( row [ "Col2" ] , Is . EqualTo ( "ValueA" ) ) ;
242243
243- // sqlite returrns exactly what was set, postgresql and sql server are using a datetime column type and returns
244- // extra info
245- Assert . That ( row [ "Col3" ] . ToString ( ) . StartsWith ( "2024-01-01" ) , row [ "Col3" ] . ToString ( ) ) ;
244+ DateTime parsedCol3 = DateParse ( row ) ;
245+ Assert . That ( parsedCol3 . Date , Is . EqualTo ( new DateTime ( 2024 , 1 , 1 ) ) , row [ "Col3" ] . ToString ( ) ) ;
246246
247247 DataTable dt2 = await connection . QueryDtAsync ( "select * from exampletable where id=@Id" , new { Id = id } ) ;
248248 Assert . That ( dt2 . Rows . Count , Is . EqualTo ( 1 ) ) ;
249249 DataRow row2 = dt2 . Rows [ 0 ] ;
250250 Assert . That ( row2 [ "Col1" ] , Is . EqualTo ( "Value1" ) ) ;
251251 Assert . That ( row2 [ "Col2" ] , Is . EqualTo ( "ValueA" ) ) ;
252- Assert . That ( row2 [ "Col3" ] . ToString ( ) . StartsWith ( "2024-01-01" ) , row2 [ "Col3" ] . ToString ( ) ) ;
252+ DateTime parsedCol32 = DateParse ( row2 ) ;
253+ Assert . That ( parsedCol32 . Date , Is . EqualTo ( new DateTime ( 2024 , 1 , 1 ) ) , row2 [ "Col3" ] . ToString ( ) ) ;
254+ }
255+
256+ private static DateTime DateParse ( DataRow row )
257+ { // sqlite returns exactly what was set, postgresql and sql server are using a datetime column type and returns
258+ // extra info
259+ DateTime parsedCol3 ;
260+ if ( row [ "Col3" ] . GetType ( ) == typeof ( DateTime ) )
261+ {
262+ parsedCol3 = row . Field < DateTime > ( "Col3" ) ;
263+ }
264+ else
265+ {
266+ parsedCol3 = DateTime . Parse ( row [ "Col3" ] . ToString ( ) ! ) ;
267+ }
268+
269+ return parsedCol3 ;
253270 }
254271
255272 [ TestCaseSource ( typeof ( DatabaseTestCases ) , nameof ( DatabaseTestCases . TestCases ) ) ]
@@ -262,7 +279,8 @@ public async Task QueryDtAsync_Test(Func<IDbConnection> connectionFactory)
262279 DataRow row = dt . Rows [ 0 ] ;
263280 Assert . That ( row [ "Col1" ] , Is . EqualTo ( "Value1" ) ) ;
264281 Assert . That ( row [ "Col2" ] , Is . EqualTo ( "ValueA" ) ) ;
265- Assert . That ( row [ "Col3" ] . ToString ( ) . StartsWith ( "2024-01-01" ) , row [ "Col3" ] . ToString ( ) ) ;
282+ DateTime parsedCol3 = DateParse ( row ) ;
283+ Assert . That ( parsedCol3 . Date , Is . EqualTo ( new DateTime ( 2024 , 1 , 1 ) ) , row [ "Col3" ] . ToString ( ) ) ;
266284 }
267285
268286 public static class DatabaseTestCases
0 commit comments