2011-01-12 65 views
3

當按時間戳排序時,我注意到了一些奇怪的排序順序。首先按照時間戳的時間部分進行排序,然後對於同一時間的記錄排序時間進行排序。Oracle中的時間戳排序順序

對我來說這看起來完全錯誤。有什麼方法可以告訴Oracle按日期排序,然後按時間排序?

謝謝。

字段被定義爲TIMESTAMP(6),沒有時區。 下面是分類結果:

10-JAN-11 11.18.36.368000000 AM 
09-JAN-11 11.18.33.700000000 AM 
08-JAN-11 11.18.33.704000000 AM 
07-JAN-11 11.18.33.700000000 AM 
06-JAN-11 11.17.40.705000000 AM 
05-JAN-11 11.17.42.611000000 AM 
04-JAN-11 11.17.40.723000000 AM 
02-JAN-11 04.45.09.553000000 PM 
01-JAN-11 04.45.08.447000000 PM 
31-DEC-10 04.45.08.447000000 PM 
30-DEC-10 04.35.22.153000000 PM 
29-DEC-10 04.30.25.334000000 PM 
12-JAN-11 12.00.00.000000000 AM 
11-JAN-11 12.00.00.000000000 AM 
10-JAN-11 12.00.00.000000000 AM 
09-JAN-11 12.00.00.000000000 AM 
08-JAN-11 12.00.00.000000000 AM 
07-JAN-11 12.00.00.000000000 AM 

下面是該查詢:

select period_end from table_name where entity_id=102167 order by period_end desc; 

回答

8

迪馬,

你的時間戳格式顯示,除了一個時間戳的所有組件,:世紀。您的最後六行必須來自上個世紀。

Regards,
Rob。

0

你可能有一個timestamp with timezone

+0

不,它被定義爲TIMESTAMP(6),沒有時區。 – Dima 2011-01-12 12:02:29

+0

在這種情況下,它可能有助於顯示SQL語句。 – 2011-01-12 12:05:01