【发布时间】:2019-01-14 08:45:45
【问题描述】:
我正在尝试获取两个日期之间的差异,但出现此错误:
无法转换类型“int?”到'System.TimeSpan'
然后我尝试使用Convert.ToInt32() 或Int32.Parse(),但仍然出现同样的错误。
任何人都可以帮助我或指出正确的方向吗?
视图模型:
public class RMACLOSE
{
public TimeSpan? diff { get; set; }
}
控制器:
var list = from RH in RMA_History
select new RMACLOSE
{
// Cannot Convert type 'int?' to 'System.TimeSpan?'
diff = DbFunctions.DiffDays(RH.EndDate, RH.StartDate)
}
RH.EndDate (DateTime): 2018-11-15 12:15:00.000 RH.StartDate (DateTime): 2018-05-24 15:43:00.000
差异:175 天
【问题讨论】:
-
它抱怨你给它一个
int?,而它想要一个TimeSpan?。为什么您认为产生int的方法会成为这里解决方案的一部分?你的问题是你有太多的开始。 -
能否请您展示一下您的数据在
RH.EndDate, RH.StartDate中的样子 -
您已经按字面意思展示了除了最相关的代码部分之外的所有内容。
-
@er-mfahhgk 我更新了我的问题:)
-
我认为你需要日期和即
175之间的区别,所以为什么你不能在RMACLOSE类中使用int?类型的diff属性所以可能是你的错误得到解决并且那么你不需要任何类型转换