只有在使用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 ),再进行查询 就可以了。