@@ -98,6 +98,45 @@ public void YdbParameter_WhenSetDbType_ReturnValueIsConverted()
9898 Assert . Equal ( 1.1f , new YdbParameter ( "$parameter" , DbType . Double ) { Value = 1.1f } . TypedValue . Value . DoubleValue ) ;
9999 }
100100
101+ [ Fact ]
102+ public async Task YdbParameter_WhenDateTimeOffset_ReturnTimestamp ( )
103+ {
104+ var dateTimeOffset = DateTimeOffset . Parse ( "2029-08-03T06:59:44.8578730Z" ) ;
105+ await using var ydbConnection = await CreateOpenConnectionAsync ( ) ;
106+ var tableTableName = $ "dateTimeOffset_{ Random . Shared . Next ( ) } ";
107+ await new YdbCommand ( ydbConnection )
108+ {
109+ CommandText = $ "CREATE TABLE { tableTableName } (TimestampField Timestamp, PRIMARY KEY (TimestampField))"
110+ }
111+ . ExecuteNonQueryAsync ( ) ;
112+ await new YdbCommand ( ydbConnection )
113+ {
114+ CommandText =
115+ $ "INSERT INTO { tableTableName } (TimestampField) " +
116+ $ "VALUES (@parameter1), (@parameter2), (@parameter3), (@parameter4)",
117+ Parameters =
118+ {
119+ new YdbParameter ( "$parameter1" , dateTimeOffset ) ,
120+ new YdbParameter ( "$parameter2" , DbType . DateTimeOffset , dateTimeOffset . AddHours ( 1 ) ) ,
121+ new YdbParameter ( "$parameter3" , DbType . DateTimeOffset , dateTimeOffset . AddHours ( 2 ) ) ,
122+ new YdbParameter ( "$parameter4" , YdbDbType . Timestamp , dateTimeOffset . AddHours ( 3 ) )
123+ }
124+ }
125+ . ExecuteNonQueryAsync ( ) ;
126+
127+ var ydbDataReader = await new YdbCommand ( ydbConnection ) { CommandText = $ "SELECT * FROM { tableTableName } " }
128+ . ExecuteReaderAsync ( ) ;
129+
130+ var hourCount = 0 ;
131+ while ( ydbDataReader . NextResult ( ) )
132+ {
133+ Assert . True ( ydbDataReader . Read ( ) ) ;
134+ Assert . Equal ( dateTimeOffset . AddHours ( hourCount ++ ) . UtcDateTime , ydbDataReader . GetValue ( 0 ) ) ;
135+ }
136+
137+ await new YdbCommand ( ydbConnection ) { CommandText = $ "DROP TABLE { tableTableName } ;" } . ExecuteNonQueryAsync ( ) ;
138+ }
139+
101140 [ Theory ]
102141 [ InlineData ( "123e4567-e89b-12d3-a456-426614174000" ) ]
103142 [ InlineData ( "2d9e498b-b746-9cfb-084d-de4e1cb4736e" ) ]
0 commit comments