C# Дата сортировки по дате DESC - PullRequest
1 голос
/ 02 апреля 2020

Я отображаю список элементов в сетке данных, связанной с dt_pd c. Столбец DueDate показывает дату проверки в виде дня, месяца и года. Когда я сортирую по убыванию, он делает следующее: Список дат и порядок: 1 --- 4/18/2020 2 --- 4/2/2020 3 --- 4/22/2020

Когда первое число дня git меньше первого числа дня другого дня git, оно сортируется первым, например, 18 апреля наступает до 2 апреля, однако 22 апреля наступает после 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";

1 Ответ

1 голос
/ 02 апреля 2020

или мне нужно записать это в БД как 02

нет, это просто усугубляет ошибку (подождите, пока вам не позвонят в службу поддержки в новый год, если вы не не верь мне); в основном: перестать хранить даты в виде строк ; хранить их как даты - т.е. DateTime; тогда все будет работать правильно . Если по какой-то причине вам абсолютно необходимо использовать string (и это должно быть веским основанием), рассмотрите возможность использования формата ISO8601, т.е. сохраните его как "2020-04-02"; тогда это естественно сортируется как строка, плюс она однозначна (нет сомнений, будет ли это 2 апреля или 4 февраля).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...