2010-07-20 50 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