2010-07-20 38 views
0

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

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

+0

你不能返回实际的领域,并使用它进行排序,但不显示它? – 2010-07-20 23:21:58

+0

我会试一试,谢谢你的建议。 – Gallen 2010-07-20 23:22:32

回答

2

一对夫妇的想法:

  • 你能使用AM 01:23/01:23 PM格式 - 这将排序好。
  • 如果你可以从DATETIME格式的数据库返回的时间,但设置为一些“恒日”的日期(例如2000-01-01 HH:MM),你几乎可以肯定放在GridView控件格式字符串列仅显示时间,同时仍然可以通过基础值进行排序。
+0

我做了Gaby建议的事情,它像魅力一样工作。我刚刚获得数据库以返回名为“实际时间”的额外列,并将排序表达式设置为该值。再次感谢StackOverflow! – Gallen 2010-07-20 23:29:27

+0

+1,将datetime字段保持原样,并在c#中进行格式显示,这也是我的下一个建议。http://peterkellner.net/2006/05/24/how-to-set-a-date- format-in-gridview-using-aspnet-20using-htmlencode-property/ – 2010-07-20 23:30:27

+0

@gallen,很高兴它工作:) – 2010-07-20 23:30:50