2010-04-26 8 views
0

Je dois transférer ce qui suit de la syntaxe Oracle à Postgresql.Portage Oracle Date Manipulation

Les deux FLO_END_DT et FLO_START_DATE sont de type DATE dans Oracle, et TIMESTAMP SANS TEMPS ZONE dans Postgresql:

SELECT TRUNC(TO_CHAR(ROUND((FL.FLO_END_DT- FL.FLO_START_DT)* 24), '9999D99'), 2) 
FROM FLOWS FL 

Je ne suis pas assez familier avec Oracle pour savoir ce qu'il tente d'accomplir.

Des idées?

Répondre

1

Nombre d'heures.

Le END_DATE-START_DATE donnera des jours, et la multiplication par 24 le transformera en heures.

Ceci est ensuite arrondi et le résultat affiché comme 9999.99 (mais le bit après la virgule sera toujours nul en raison de l'arrondi).

Enfin, le TRUNC effectuera une conversion implicite vers un nombre car TRUNC n'a aucun sens pour une chaîne.

Celui qui a mis ce désordre ensemble devrait être retiré et &% @ ($^

+0

haha ​​à votre dernier commentaire. – systemoutprintln