首页 新闻 会员 周边

System.Data.SqlTypes.SqlDateTime.MinValue如何得到时间值

0
悬赏园豆:10 [已解决问题] 解决于 2017-03-22 12:56

1、原由:数据库操作,插入 Time(0)字段空值时,处理方法求解。

2、为了不出现Datetime溢出,据说要使用System.Data.SqlTypes.SqlDateTime.MinValue。

3、数据库

   PatrolDuty(

     DutyId  nvarchar(50) PK,

     StartTime  Time0

    )

4、实体类

public class PatrolDuty
{

  public string DutyId {get;set;}
  public DateTime StartTime {get;set;}
}

 

5、Dao 操作中的自定义方法

/// <summary>

/// 业务对象填充实体对象公共方法

/// </summary>

private   SqlParameter[]   FillParameter(PatrolDuty p)

   {

      try

      {

SqlParameter[] paras = new SqlParameter[]

        {

new SqlParameter("@DutyId",(p.DutyId==null)?Convert.ToString(DBNull.Value):p.DutyId),

                                                                     

new SqlParameter("@StartTime",(p.StartTime==DateTime.MinValue)?System.Data.SqlTypes.SqlDateTime.MinValue:p.StartTime.ToString("t")),

                                                                     

};

 return paras; 

 }

catch (Exception e)

 {

   throw e;

  }  

}   

6、System.Data.SqlTypes.SqlDateTime.MinValue如何只得到时间值  例如      12:30:20

WesternWind的主页 WesternWind | 初学一级 | 园豆:7
提问于:2017-03-21 13:21
< >
分享
最佳答案
0

1.因为没有只时间这个说法.时间类型都是年月日时分秒

2.只想要时分秒那就看数据库有没有对应的类型比如time

3.然后你要找.net中对应time的类型.肯定不会是datetime

4.一般初始化都插入当前时间.或者给时间赋值:"1/1/1900 00:00:00"

收获园豆:10
吴瑞祥 | 高人七级 |园豆:29449 | 2017-03-21 15:09
其他回答(1)
0

你这写法也是醉了。。。 

DateTime.Now.TimeOfDay

czd890 | 园豆:14412 (专家六级) | 2017-03-21 13:51

“System.Data.SqlTypes.SqlTypeException”类型的异常在  中发生,但未在用户代码中进行处理

其他信息: SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。

支持(0) 反对(0) WesternWind | 园豆:7 (初学一级) | 2017-03-21 14:45

@WesternWind: 定义一个timespan呀

支持(0) 反对(0) czd890 | 园豆:14412 (专家六级) | 2017-03-22 10:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册