Code Bye

datatable按时间排序

 

从excel读取数据,因为毫秒用括号扩起来的,需要去掉才能转成datetime类型,去掉毫秒转成datetime放进table,我用dataview的sort功能把时间升序排列,奇怪的是,有一小部分没有排列正确,不知道什么原因

那你就把datatable排序呗
支持T-Sql
datatable排序该怎么弄
http://www.cnblogs.com/xiaofengfeng/archive/2012/06/27/2565941.html
20分
我猜测问题的原因可能是数据放进DataTable中,时间那一列可能并没有认定为是DateTime类型,可能认定为字符型,导致排列出来的结果不正确,你可以试试将DataColumn的DataType属性转化为DataTime类型,如下:
dt.Columns[“CreatedOn”].DataType = Type.GetType(“System.DateTime”);
不用去掉也可以转

如下

string s=”2015-01-01 08:00:00{165}”;
DateTime dt=DateTime.ParseExact(s,”yyyy-MM-dd HH:mm:ss{fff}”,null);

问题是你放进datatable里的时候就应该是时间类型的变量,而不是把它ToString之后再放进去

给 的方法都试了,是转成datetime才放进table表的,排出来日期是对的,时间却不对,弄的我莫名奇妙
20分
看看datagridview的那一列,type是什么,是时间类型吗

不要先填充成string类型,然后去修改它

那样它就默认是字符串类型了

你之后再给它填充时间类型的数据,也会强制转换成字符串类型

把table的列类型改成了datetime,转换也都是datetime后才对了,MLGB的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明datatable按时间排序