首页 > 解决方案 > C# 数据表排序日期 DESC

问题描述

我在绑定到 dt_pdc 的数据网格中显示项目列表。DueDate 列显示支票的日期,如日、月和年。当我使用降序排序时,它会执行以下操作:日期列表和顺序:1---4/18/2020 2---4/2/2020 3---4/22/2020

当一天的第一个数字小于另一天的第一个数字时,它首先被排序,在示例中,4 月 18 日在 4 月 2 日之前,但是 4 月 22 日在 4 月 2 日之后。

有什么我可以在排序视图中修复的,还是我必须在数据库中将它写为 02 而不是 2。

dt_pdc.Columns.Add("ID");
dt_pdc.Columns.Add("ChequeNumber");
dt_pdc.Columns.Add("DueDate");
dt_pdc.Columns.Add("Amount");


dt_pdc.Merge(Database.Accounts.Cheques.getPDCChequesSearch(dt_pdc));
dt_pdc.DefaultView.Sort = "DueDate ASC";

标签: c#

解决方案


还是我必须在数据库中将其写为 02

不,这只会加剧错误(如果您不相信我,请等到您在元旦收到紧急支持电话);基本上:停止将日期存储为字符串;将它们存储为日期- 即DateTime;那么一切都会正常工作。如果您string出于某种原因绝对必须使用(这需要一个很好的理由),请考虑使用 ISO8601 格式,即将其存储为"2020-04-02"; 然后它可以自然地作为字符串排序,而且它是明确的(毫无疑问这是 4 月 2 日还是 2 月 4 日)。


推荐阅读