@@ -501,7 +501,7 @@ public async Task GetGuid(string column, Type fieldType)
501
501
[ InlineData ( "`Timestamp`" , "TIMESTAMP" , new object [ ] { null , "1970 01 01 0 0 1" , "2038 1 18 3 14 7 999999" , null , "2016 4 5 14 3 4 567890" } ) ]
502
502
public void QueryDate ( string column , string dataTypeName , object [ ] expected )
503
503
{
504
- DoQuery ( "times" , column , dataTypeName , ConvertToDateTime ( expected ) , reader => reader . GetDateTime ( column . Replace ( "`" , "" ) ) ) ;
504
+ DoQuery ( "times" , column , dataTypeName , ConvertToDateTime ( expected , DateTimeKind . Unspecified ) , reader => reader . GetDateTime ( column . Replace ( "`" , "" ) ) ) ;
505
505
#if ! BASELINE
506
506
DoQuery ( "times" , column , dataTypeName , ConvertToDateTimeOffset ( expected ) , reader => reader . GetDateTimeOffset ( 0 ) , matchesDefaultType : false ) ;
507
507
#endif
@@ -1053,30 +1053,30 @@ private void DoQuery<TException>(
1053
1053
}
1054
1054
}
1055
1055
1056
- private static object [ ] ConvertToDateTime ( object [ ] input )
1056
+ private static object [ ] ConvertToDateTime ( object [ ] input , DateTimeKind kind )
1057
1057
{
1058
1058
var output = new object [ input . Length ] ;
1059
1059
for ( int i = 0 ; i < input . Length ; i ++ )
1060
1060
{
1061
1061
var value = SplitAndParse ( input [ i ] ) ;
1062
1062
if ( value ? . Length == 3 )
1063
- output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] ) ;
1063
+ output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] , 0 , 0 , 0 , kind ) ;
1064
1064
else if ( value ? . Length == 6 )
1065
- output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] , value [ 3 ] , value [ 4 ] , value [ 5 ] ) ;
1065
+ output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] , value [ 3 ] , value [ 4 ] , value [ 5 ] , kind ) ;
1066
1066
else if ( value ? . Length == 7 )
1067
- output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] , value [ 3 ] , value [ 4 ] , value [ 5 ] , value [ 6 ] / 1000 ) . AddTicks ( value [ 6 ] % 1000 * 10 ) ;
1067
+ output [ i ] = new DateTime ( value [ 0 ] , value [ 1 ] , value [ 2 ] , value [ 3 ] , value [ 4 ] , value [ 5 ] , value [ 6 ] / 1000 , kind ) . AddTicks ( value [ 6 ] % 1000 * 10 ) ;
1068
1068
}
1069
1069
return output ;
1070
1070
}
1071
1071
1072
1072
private static object [ ] ConvertToDateTimeOffset ( object [ ] input )
1073
1073
{
1074
1074
var output = new object [ input . Length ] ;
1075
- var dateTimes = ConvertToDateTime ( input ) ;
1075
+ var dateTimes = ConvertToDateTime ( input , DateTimeKind . Utc ) ;
1076
1076
for ( int i = 0 ; i < dateTimes . Length ; i ++ )
1077
1077
{
1078
1078
if ( dateTimes [ i ] != null )
1079
- output [ i ] = new DateTimeOffset ( DateTime . SpecifyKind ( ( DateTime ) dateTimes [ i ] , DateTimeKind . Utc ) ) ;
1079
+ output [ i ] = new DateTimeOffset ( ( DateTime ) dateTimes [ i ] ) ;
1080
1080
}
1081
1081
return output ;
1082
1082
}
0 commit comments