Skip to content

Commit cb7df14

Browse files
fix
1 parent 963d9cb commit cb7df14

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/Ydb.Sdk/test/Ydb.Sdk.Ado.Tests/YdbParameterTests.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)