根据日期列(dd-MMM-yyyy)对数据表进行排序
本文关键字:数据表 排序 dd-MMM-yyyy 日期 | 更新日期: 2023-09-27 18:25:04
我有一个数据集ds,我需要根据列对相同ds的数据表进行排序,列名为Date。此列上的值采用"dd MMM yyyy"格式。
如果不能将列类型更改为Date,请尝试以下中的Linq解决方案
var recs = dataset.Tables[0].AsEnumerable()
.OrderBy(x =>DateTime.ParseExact(
x.Field<string>("Date"),
"dd MMM yyyy",
CultureInfo.InvariantCulture));
这将是一个问题,尤其是当它是一个大表时。当然,最好的答案是将列重新定义为日期类型。这样它就能高效地进行排序和连接。但是,如果表不是很大,您可以将日期字符串重新格式化为ISO格式(YYYY-MM-DD),它将正确排序。您没有提到您使用的是哪个数据库,字符串和日期函数因平台而异:以下是SQL Server示例:
SELECT CAST([Date] AS Date) AS real_date,
my_other_fields
FROM MyTable
我在家,所以我现在没有SQL Server来测试它(如果它不起作用,我可以在早上更新示例),但日期格式解析起来非常明确,所以我希望转换会正常工作。
如果你想完全在应用程序端处理这个问题,那么写一个字符串函数应该很简单,它会重新排序日期字符串中的年、月和日。