Calculez avec précision la différence en millisecondes entre deux horodatages dans la base de données Oracle
Dans la base de données Oracle, le calcul de la différence de temps (en millisecondes) entre deux variables de type TIMESTAMP peut être réalisé par soustraction directe. Le résultat est présenté sous forme d'INTERVALLE JOUR À SECONDE, contenant des millisecondes voire des microsecondes, selon la plate-forme du système d'exploitation.
Le sytimestamp sur les systèmes Windows contient généralement des millisecondes, tandis que sur les systèmes Unix, il contient des microsecondes. Par exemple :
<code class="language-sql">select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) from dual;</code>
Pour extraire chaque unité de temps dans INTERVAL DAY TO SECOND, vous pouvez utiliser la fonction EXTRACT. Par exemple :
<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>
Pour obtenir le nombre total de millisecondes, vous pouvez convertir ces unités de temps en millisecondes et ajouter :
<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>
Souvent, cependant, il est plus pratique de conserver la représentation INTERVALLE JOUR À SECONDE ou d'utiliser des colonnes séparées pour stocker différentes unités de temps plutôt que de calculer le nombre total de millisecondes.
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!