Maison > base de données > tutoriel mysql > Comment calculer la différence en millisecondes entre les horodatages dans Oracle ?

Comment calculer la différence en millisecondes entre les horodatages dans Oracle ?

Susan Sarandon
Libérer: 2025-01-11 21:01:49
original
405 Les gens l'ont consulté

How to Calculate the Millisecond Difference Between Timestamps in Oracle?

Différence en millisecondes entre les horodatages calculés dans la base de données Oracle

Le calcul de la différence en millisecondes entre deux horodatages dans une base de données Oracle nécessite un examen attentif des nuances spécifiques à la plate-forme ainsi que du format de sortie requis.

Lorsque deux variables TIMESTAMP sont soustraites, le résultat est une valeur INTERVAL DAY TO SECOND. Cet intervalle contient un nombre différent de millisecondes et/ou de microsecondes, selon le système d'exploitation utilisé par la base de données. Par exemple, les bases de données Windows fournissent généralement des millisecondes, tandis que les bases de données Unix ont tendance à utiliser des microsecondes.

Extraire la composante temporelle

Pour récupérer une composante temporelle spécifique à partir d'une valeur INTERVAL DAY TO SECOND, vous pouvez utiliser la fonction EXTRACT. Cette fonction permet d'extraire des éléments individuels tels que les jours, les heures, les minutes et les secondes.

Calculer le total des millisecondes

Si vous avez besoin du nombre total de millisecondes entre les horodatages, vous pouvez convertir chaque composant extrait en millisecondes et en somme. Cependant, il est souvent plus pratique de conserver la représentation INTERVALLE JOUR À SECONDE ou de créer différentes colonnes pour les heures, les minutes et les secondes.

Exemple de calcul :

Considérons l'exemple suivant :

<code class="language-sql">select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd')
from dual;</code>
Copier après la connexion

Cette requête récupère le décalage horaire sous forme de valeur INTERVAL DAY TO SECOND :

<code>+000000000 14:51:04.339000000</code>
Copier après la connexion

En utilisant la fonction EXTRACT, nous pouvons extraire les composants du jour, de l'heure, des minutes et des secondes :

<code class="language-sql">select extract(day from diff) days,
       extract(hour from diff) hours,
       extract(minute from diff) minutes,
       extract(second from diff) seconds
from (select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd') diff
            from dual);</code>
Copier après la connexion

Le résultat est :

<code>      DAYS      HOURS    MINUTES    SECONDS
---------- ---------- ---------- ----------
         0         14         55     37.936</code>
Copier après la connexion

Pour calculer le total des millisecondes, nous combinons ces composants :

<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) total_milliseconds
from (select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd') diff
            from dual);</code>
Copier après la connexion

Résultats de retour :

<code>TOTAL_MILLISECONDS
------------------
          53831842</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal