Один из способов обойти это - сохранить ваши значения в базе данных как int64 как тики, поэтому вы можете выполнить сортировку на стороне сервера, а затем на стороне приложения создать временные интервалы из тиков, и вы можете обрабатывать CustomColumnDisplayText , чтобы отобразить его так, как вы хотите, убедившись, что ваш столбец настроен на сортировку по значению, а не DisplayText.
Пример
Внутри события CustomDisplayText вашего места GridView
TimeSpan span = TimeSpan.FromTicks(e.Value);
e.DisplayText = string.Format("{0} days {1} hours {2} minutes", span.Days, span.Hours, span.Minutes);