我找不到一种方法如何读取postgres时间戳ptz作为。NETDateTimeOffset值。根据留档,这似乎是可能的。有人能描述如何处理这个问题吗?
我正在使用:Postgres:11. x Npgsql:4.1.0
代码片段非常简单:
using (var connection = new NpgsqlConnection(connectionString))
{
connection.Open();
using (var command = new NpgsqlCommand())
{
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = "SELECT '2004-10-19 10:23:54+02'::timestamptz";
var o = (DateTimeOffset)command.ExecuteScalar();
Console.WriteLine(o);
}
}
它从DateTime引发无效的强制转换异常到DateTimeOffset:
Unhandled Exception: System.InvalidCastException: Unable to cast object of type 'System.DateTime' to type 'System.DateTimeOffset'
默认情况下,DateTime
值由命令读取。ExecuteScalar()
。有阅读器方法GetFieldValue
更多详情:https://github.com/npgsql/npgsql/issues/2641