2015-01-26 30 views
0

我有一個使用Oracle 11g查詢填充的網格,該查詢返回TIMESTAMP(6)WITH TIME ZONE字段以及其他字段。 當我從2014年12月26日至2015年1月5日選擇要顯示的數據的日期範圍,然後嘗試按該列(asc或desc)進行排序時,排序不正確。例如,按降序顯示從01/01到01/05,然後從12/26到12/31。看起來像字符串排序。對包含帶時區的時間戳的數據表列進行排序

我猜測TIMESTAMP(6)的時區字段包含值像21 -JAN-2015 18:17:16:00000 USA/EASTERN不被識別爲日期時間,而是字符串。有什麼辦法可以解決這個問題嗎?

+0

因此,您正在檢索多個列,並提供從數據庫檢索後重新排序它們的選項?您的網格不允許指示列的數據類型?你可以添加一個隱藏的列用於訂購一個明顯的列嗎?或以'YYYY-MM-DD HH24 ...'格式顯示列(字符串排序可行)? – Abecee 2015-01-26 22:43:33

+0

我有一個隱藏列,其中包含帶時間列的該時間戳的格式良好的版本,它將數據顯示爲「 01/21/2015 18:17:16 EST「;但是這是作爲一個表示部分正弦它是字符串。數據本身(帶時區的時間戳)需要用於排序。我不能使用字符串版本排序,因爲它將排序像字符串,而不是日期時間。我需要能夠顯示在此列中的時區。 – NoBullMan 2015-01-27 03:03:11

+0

此查詢如何不同於http://stackoverflow.com/questions/28118242/date-time-格式與時區? – Abecee 2015-01-27 21:38:02

回答

0

談到評論到一個答案:

有多種選擇:
(I)依賴於數據庫的數據正確地排序 - 你可能要防止由於性能原因。 (ii)指示網格處理時間戳列(而不是字符串列) - 這可能是不可能的。
(iia)使用不同的網格組件,它正確處理日期列。
(iii)使用帶有格式爲'YYYY-MM-DD HH24 ...'的時間戳的隱藏(字符串)列進行排序。 (iv)編寫你自己的排序程序。

隨意提供更多的細節,如果你認爲合適的話。

相關問題