Asp.Net MVC时间跨度

时间:2016-04-02 18:23:07

标签: asp.net asp.net-mvc

我有一个应用程序,用户需要在该应用程序中填写他们针对客户完成的工作量的时间表。我目前使用的Timespan在某一点上运行良好。

我目前遇到的问题是,如果用户每天必须对客户投放4小时或更长时间,那么它就会失败。我得到的当前消息是SqlDbType.Time overflow. Value '1.04:00:00' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999.

这只适用于我总计的所有日子。

我拥有的是这个

型号:

 public TimeSpan Total
    {
        get
        {
            TimeSpan result = new TimeSpan(Monday.Ticks 
                                           + Tuesday.Ticks
                                           + Wednesday.Ticks
                                           + Thursday.Ticks
                                           + Friday.Ticks
                                           + Saturday.Ticks
                                           + Sunday.Ticks);
            return (result);
        }
        set
        {
            TimeSpan result = new TimeSpan(Monday.Ticks
                                           + Tuesday.Ticks
                                           + Wednesday.Ticks
                                           + Thursday.Ticks
                                           + Friday.Ticks
                                           + Saturday.Ticks
                                           + Sunday.Ticks);
        }
     }

我已尝试将.ticks移至部分有效的.Hours,但却给了我过多的0s http://prntscr.com/anaigx

请有人可以提供建议。

1 个答案:

答案 0 :(得分:3)

您遇到的问题是由于您对SqlDbType.Time的定义。

此类型只能用于“正常”时间,如15:36,或者其他任何情况,它不能存储小时数。

如果你想存储小时数,你应该使用float类型来存储小时数,或者使用int(或bigint)来存储小时数。