2011-01-12 2 views
3

J'ai remarqué un ordre de tri étrange lors du tri par horodatage. D'abord, il trie la partie temporelle de l'horodatage puis, pour les enregistrements ayant la même heure, la date utilisée pour le tri.Ordre de tri d'horodatage dans Oracle

Pour moi, il semble complètement faux. Existe-t-il un moyen de dire à Oracle de trier par date, puis par heure?

Merci.

Le champ est défini comme TIMESTAMP (6), sans fuseau horaire. Voici le résultat de tri:

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 

Voici la requête:

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

Répondre

8

Dima,

Votre format d'horodatage montre tous les composants de l'horodatage, sauf un: le siècle. Vos six dernières lignes doivent provenir d'un siècle précédent.

Cordialement,
Rob.

+2

D'abord je pensais que c'était une blague, mais vous avez raison! – Dima

0

Vous avez un probable timestamp with timezone.

+0

Non, c'est défini comme TIMESTAMP (6), sans fuseau horaire. – Dima

+0

Dans ce cas, il est probablement utile d'afficher l'instruction SQL. –

+0

Question mise à jour. Merci pour une réponse rapide. – Dima