Maison >base de données >tutoriel mysql >Comment calculer la différence en millisecondes entre deux horodatages Oracle ?
Détermination des différences en millisecondes dans les horodatages Oracle
Travailler avec les horodatages Oracle nécessite souvent de calculer la différence de temps précise entre deux valeurs. Bien que les différences en secondes ou en minutes soient courantes, calculer la différence en millisecondes peut être crucial dans des applications spécifiques.
Méthode
La fonction EXTRACT
apporte une solution. Il extrait les composants d'une valeur INTERVAL DAY TO SECOND
, résultat de la soustraction de deux horodatages.
Cette requête initiale extrait les composants jour, heure, minute et seconde :
<code class="language-sql">SELECT EXTRACT(DAY FROM diff) AS days, EXTRACT(HOUR FROM diff) AS hours, EXTRACT(MINUTE FROM diff) AS minutes, EXTRACT(SECOND FROM diff) AS seconds FROM (SELECT SYSTIMESTAMP - TO_TIMESTAMP('2012-07-23', 'YYYY-MM-DD') AS diff FROM DUAL);</code>
Pour obtenir le nombre total de millisecondes, convertissez ces composants et additionnez-les :
<code class="language-sql">SELECT EXTRACT(DAY FROM diff) * 24 * 60 * 60 * 1000 + EXTRACT(HOUR FROM diff) * 60 * 60 * 1000 + EXTRACT(MINUTE FROM diff) * 60 * 1000 + ROUND(EXTRACT(SECOND FROM diff) * 1000) AS total_milliseconds FROM (SELECT SYSTIMESTAMP - TO_TIMESTAMP('2012-07-23', 'YYYY-MM-DD') AS diff FROM DUAL);</code>
Remarque importante : La fonction ROUND
garantit que les secondes sont représentées avec précision en millisecondes.
Bien que calculer le total des millisecondes soit possible, conserver le INTERVAL DAY TO SECOND
résultat ou utiliser des colonnes séparées pour chaque unité de temps est souvent plus pratique. Cette méthode offre cependant un calcul précis en millisecondes lorsque cela est nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!