-3

我有一个数据集 ds,我需要根据列对相同 ds 的数据表进行排序,列名是日期。此列中的值采用“dd MMM yyyy”格式。

4

2 回答 2

0

如果您无法将列类型更改为日期,请尝试如下 Linq 解决方案

var recs = dataset.Tables[0].AsEnumerable()
    .OrderBy(x =>DateTime.ParseExact(
             x.Field<string>("Date"),
                           "dd MMM yyyy", 
                           CultureInfo.InvariantCulture));
于 2013-07-26T07:02:15.733 回答
-1

这将是一个问题,特别是如果它是一张大桌子。当然,最好的答案是将列重新定义为日期类型。这样它将有效地排序和加入。但是,如果表格不大,您可以将日期字符串重新格式化为 ISO 格式 (YYYY-MM-DD),它会正确排序。您没有提及您使用的数据库,并且字符串和日期函数因平台而异:这是一个 SQL Server 示例:

 SELECT CAST([Date] AS Date) AS real_date,
        my_other_fields
   FROM MyTable

我在家,所以我现在没有 SQL Server 来测试它(如果它不起作用,我可以在早上更新示例),但是该日期格式解析起来非常明确,所以我希望演员阵容可以正常工作。

如果你想完全在应用程序端处理这个问题,编写一个字符串函数应该相当简单,它将重新排序日期字符串中的年、月和日。

于 2013-07-26T07:00:15.893 回答