我无法将postgresql间隔转换为TimeSpan

item.TSHours = dr["Hours"] == DBNull.Value ? TimeSpan.Zero : (TimeSpan)dr["Hours"];

正在投掷:
“指定的转换无效”
但是dr["Hours"]返回值:/
我做错什么了?我尝试了几个npgsql版本,但没有改变。
dr[“Hours”]是NpgsqlTypes.NpgsqlInterval
编辑:
我唯一的办法就是:
new TimeSpan(((NpgsqlTypes.NpgsqlInterval)dr["Hours"]).TotalTicks)

最佳答案

至少你不能直接将字符串转换成TimeSpan。
这将起作用:

item.TSHours = dr["Hours"] == DBNull.Value ? TimeSpan.Zero : TimeSpan.Parse(dr["Hours"].ToString());

npgsql APi文档:
为了避免将不必要的提供者特定关注点强加于不需要关注它们的用户,在包含NpgsqlInterval值的字段上调用GetValue将返回一个时间跨度,而不是NpgsqlInterval。

关于c# - 无法将Postgresql间隔转换为C#TimeSpan,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9511607/

10-11 22:51
查看更多