在使用SQL查询的时候直接将日期转换为date类型然后order by 日期 asc既可
select convert(date,postdate) as postdate from table order by postdate asc
但 "9/27/2009 10:27:58 AM" 就排到了第一。我怎么才可以令到 "9/27/2009 10:27:58 AM"排第一呢?
这句话是不是有问题。
升序asc,降序desc。
楼主这个问题还真不好解决。问题是你的日期格式数据是“字符串”。字符串的排序和时间类型的排序是不一样的。
建议还是对数据结构进行调整。比如转换数据列类型。
public class DateTimeStringComparer : IComparer<string>
{
public readonly static DateTimeStringComparer SingletonInstance = new DateTimeStringComparer();
#region IComparer<string> 成员
public int Compare(string x, string y)
{
DateTime m = DateTime.Parse(x);
DateTime n = DateTime.Parse(y);
return DateTime.Compare(m, n);
}
#endregion
}
DataTable dt = new DataTable();
OrderedEnumerableRowCollection<DataRow> orderedDataRows= dt.AsEnumerable().OrderBy(o => (string)o["your datetime string column name"], DateTimeStringComparer.SingletonInstance);
转换成DateTime就可以进行比较