对数据集中的时间值进行排序

时间:2010-07-20 23:16:21

标签: sql datetime sorting time dataset

在我目前的解决方案中,我使用CONVERT在我的数据库中转换DateTime值“Time”,因此它以##:## AM / PM格式显示,我意识到CONVERT只接受任何数据类型并将其转换在C#中进入一个VarChar或一个String。这使我的排序工作在我的Gridview中不正确。我正在对从我的存储过程返回的DataSet中的列进行排序。然而它不是由AM / PM排序,因为它是一个字符串文字,而不是DateTime。

排序时间值的最佳方法是什么?我应该在数据库中使用不同的数据类型,例如TIME吗?不同的CONVERT命令?我很难过!我不能使用24小时格式,这是唯一的限制。谢谢!

2 个答案:

答案 0 :(得分:2)

有几点想法:

  • 你可以使用AM 01:23 / PM 01:23格式 - 这样很好。
  • 如果您可以以DATETIME格式从数据库返回时间,但将日期设置为某个“常量日期”(例如2000-01-01 hh:mm),您几乎可以肯定在GridView上放置一个格式字符串列只显示时间,同时仍然可以按基础值进行排序。

答案 1 :(得分:0)

我使用刻度线:http://www.codeproject.com/KB/database/DateTimeToTicks.aspx 或者(如果可能的话)DateTime - 并在我的网格中处理它。

您可以添加一个附加列,其中包含日期/转换日期,该日期/转换日期隐藏在您的gui中,但用于排序。