Oracle Convertit les Secondes en Heures: Minutes: Secondes
J'ai une obligation d'affichage de l'utilisateur, la durée en Heures:Minutes:Secondes format à partir d'un nombre total de secondes de la valeur. Apprécier si vous connaissez un ORACLE de la fonction de faire de même. Je suis à l'aide d'Oracle.
Je vous remercie pour votre temps.
source d'informationauteur user1430989
Vous devez vous connecter pour publier un commentaire.
Si vous êtes simplement à la recherche pour convertir un nombre donné de secondes en HH:MI:SS, cela devrait le faire
où
x
est le nombre de secondes.Essayer celui-ci.
Très simple et facile à utiliser
Le code suivant est moins complexe et donne le même résultat. Notez que " X " est le nombre de secondes pour être convertis en heures.
Dans Oracle utilisation:
Dans SqlServer utilisation:
Si vous avez une variable contenant f.e. 1 minute(en secondes), vous pouvez l'ajouter à la systimestamp ensuite utiliser to_char pour sélectionner les différents éléments d'heure.
Malheureusement pas... Cependant, il y a un truc simple si il va être de moins en moins de 24 heures.
Oracle suppose qu'un numéro est ajouté à une date qui est dans jours. Convertir le nombre de secondes en jours. Ajoutez le courant de la journée, puis utilisez le
to_date
fonction de prendre seulement les pièces de votre intérêt. En supposant que vous avezx
secondes:Cela ne fonctionnera pas si il y a plus de 24 heures, même si vous pouvez supprimer les données actuelles de nouveau et d'obtenir la différence en jours, heures, minutes et secondes.
Si vous voulez quelque chose comme:
51:10:05
soit 51 heures, 10 minutes et 5 secondes, puis vous allez avoir à utilisertrunc
.Une fois de plus, en supposant que vous avez
x
secondes...trunc(x /60 /60)
trunc((x - ( trunc(x /60 /60) * 60 * 60 )) /60)
x - hours * 60 * 60 - minutes * 60
Vous laissant avec:
J'ai mis en place un SQL Violon à démontrer.
La suite est Encore un Autre Moyen (tm) - c'est toujours de faire un peu de calcul, mais fournit un exemple d'utilisation de l'EXTRAIT de tirer les champs individuels d'un INTERVALLE:
Le code qui extrait les champs, etc, doit contenir un calcul pour convertir les JOURS sur le terrain, à l'équivalent des heures, et n'est pas la plus jolie, mais enveloppé soigneusement dans une procédure, il n'est pas trop mal de l'utiliser.
De partager et de profiter.
En supposant que votre temps est appelé saint.etime ci-dessous et stockés dans des secondes, voici ce que j'utilise. Cela gère les temps où les secondes sont plus que 86399 secondes (ce qui est de 11:59:59 pm)
cas lors de la st.etime > 86399 puis to_char(to_date(st.etime - 86400,'marques'),'HH24:MI:SS') else to_char(to_date(st.etime,'marques'),'HH24:MI:SS') fin readable_time
Pour le commentaire sur la réponse par vogash, je comprends que vous voulez quelque chose comme un compteur de temps, c'est parce que vous pouvez avoir plus de 24 heures. Pour cela, vous pouvez effectuer les opérations suivantes:
xxx
sont votre nombre de secondes.La première partie d'accumuler les heures et la deuxième partie calcule le reste des minutes et des secondes. Par exemple, après avoir
150023 seconds
il vous donnera41:40:23
.Mais si vous voulez toujours avoir hh24:mi:ss, même si vous avez plus de
86000 seconds
(1 jour), vous pouvez le faire:xxx
sont votre nombre de secondes.Par exemple, avoir
86402 seconds
il réinitialise le temps de00:00:02
.Ma version. Montrer Oracle DB disponibilité en format DDd HHh MMm SSs
idée de Date /Heure de l'Arithmétique avec Oracle 9/10
Convertir des minutes en heure:min:sec format
Pendant plus de 24 heures, vous pouvez inclure les jours de la requête suivante. Le retour de format est
days:hh24:mi:ss
Requête:
select trunc(trunc(sysdate) + numtodsinterval(9999999, 'second')) - trunc(sysdate) || ':' || to_char(trunc(sysdate) + numtodsinterval(9999999, 'second'), 'hh24:mi:ss') from dual;
De sortie:
115:17:46:39
Vous devriez vérifier ce site. Le TO_TIMESTAMP section pourrait être utile pour vous!
Syntaxe:
TO_TIMESTAMP ( string , [ format_mask ] [ 'nlsparam' ] )