我有一个数据集 ds,我需要根据列对相同 ds 的数据表进行排序,列名是日期。此列中的值采用“dd MMM yyyy”格式。
问问题
1592 次
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 回答