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