gpt4 book ai didi

c# - 无法将 postgresql 间隔转换为 C# TimeSpan

转载 作者:行者123 更新时间:2023-11-29 12:14:23 25 4
gpt4 key购买 nike

我无法将 postgresql 间隔转换为 TimeSpan:

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

正在 throw :

"Specified cast is not valid"

但是 dr["Hours"] 返回值 "06:00:00" :/

我做错了什么?我尝试了几个版本的 npgsql,但没有任何改变。

dr["Hours"] is 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文档:

To avoid forcing unnecessary provider-specific concerns on users who need not be concerned with them a call to GetValue on a field containing an NpgsqlInterval value will return a TimeSpan rather than an NpgsqlInterval.

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com