2010-01-13 6 views
1

quand je fais requête SUBSTR (e.updatetime - s.updatetime, 1,30) je vais obtenir le résultat ci-dessous 000000001 05: 06: 47,388000oracle SUBSTR Date Durée

cela peut sauver dans java.util. Rendez-vous amoureux? ou quelle classe java dois-je utiliser autre que chaîne pour me satisferai jour, récupérer minutes, heures ...

p/s: e.updatetime est le type d'horodatage

+2

SUBSTR attend une chaîne comme premier paramètre, mais vous passez un intervalle. Par conséquent, il effectue une conversion de type de données implicite pour vous. Il est préférable d'effectuer une conversion de type de données explicite à l'aide de TO_CHAR. Il est probablement préférable d'utiliser la suggestion de Gary et d'éviter toute conversion en chaîne. –

Répondre

3

Démarrer avec les champs séparés, puis de les rejoindre comme tu veux.

select extract (day from (time_b-time_a)), 
     extract (hour from (time_b-time_a)), 
     extract (minute from (time_b-time_a)), 
     extract (second from (time_b-time_a)) 
from ....; 
1

cet extrait pourrait être utile aussi:

select ..., 
    extract (day from (j.finished_date - j.started_date)) * 86000 + 
    extract (hour from (j.finished_date - j.started_date)) * 3600 + 
    extract (minute from (j.finished_date - j.started_date)) * 60 + 
    extract (second from (j.finished_date - j.started_date)) as "duration"