C# 读取数据库中时间,毫秒丢失的情况总结

只有在使用Convert.ToDateTime(或者(DateTime)转)对Object对象转化的时候,才能够保留日期的毫秒。

直接使用Object的ToString()方法,会时毫秒丢失。

因此,如果需要保留毫秒的话,需要按照如下来做:

      foreach (DataRow dr in dt.Rows)
      {
	 string CreaTime = dr["CreateDate"].ToString();//CreaTime 的值丢失毫秒了。
	//下面会保留毫秒:
         DateTime CreatDate = Convert.ToDateTime(dr["CreateDate"]);
	//或者:
	DateTime CreatDate = (DateTime)(dr["CreateDate"]);
	//转成字符串输入时包含毫秒的写法,可以这样:
        string strTime = CreatDate.ToString("yyyy-MM-dd HH:mm:ss.fff");
	//todo something else...

         }

补充:如果,传过来的日期是去掉了毫秒的日期,而数据库中的日期是包含毫秒的(比如yyyy-MM-dd HH:mm:ss.fff,由于去掉了毫秒,那么在根据时间查询的时候,总会多获取到这条数据),这个时候,我们把查询的日期条件,转化一下:CONVERT(varchar(40) , CreateDate, 120 ),再进行查询 就可以了。

没有更多推荐了,返回首页