NETProvider icon indicating copy to clipboard operation
NETProvider copied to clipboard

FbParameter does not support DbType.DateTimeOffset

Open ig-sinicyn opened this issue 1 year ago • 1 comments

FirebirdSql.Data.FirebirdClient v10.3.1.

I have a Dapper query that attempts to insert a DateTimeOffset value but fails with ArgumentException: "Invalid data type: 27.". Simplified version:

        var connectionString = "...";

        var connection = new FbConnection(connectionString);
        await connection.QueryFirstAsync<DateTimeOffset>(
            "select cast(@value as timestamp) from rdb$database",
            new { Value = DateTimeOffset.UtcNow });

I've debugged the code and it looks like FbParameter.DbType property does not accept DateTimeOffset value.

        var param = new FbParameter()
        {
            DbType = DbType.DateTimeOffset // ArgumentException here
        };

As a workaround I've used DateTime values but it will be much better to have DateTimeOffsert params to work out of the box.

ig-sinicyn avatar Sep 03 '24 09:09 ig-sinicyn

If you want to work with time zones, you should use FbZonedDateTime which is more aligned to how time zones are handled in Firebird.

cincuranet avatar Sep 03 '24 20:09 cincuranet