ホームページ >データベース >mysql チュートリアル >2 つの Oracle タイムスタンプ間のミリ秒の差を計算するにはどうすればよいですか?

2 つの Oracle タイムスタンプ間のミリ秒の差を計算するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-11 20:47:42384ブラウズ

How to Calculate the Millisecond Difference Between Two Oracle Timestamps?

Oracle タイムスタンプのミリ秒単位の違いの決定

Oracle タイムスタンプを操作するには、多くの場合、2 つの値間の正確な時間差を計算する必要があります。秒または分の違いは一般的ですが、特定のアプリケーションではミリ秒までの差を計算することが重要になる場合があります。

メソッド

EXTRACT 関数は解決策を提供します。 INTERVAL DAY TO SECOND 値 (2 つのタイムスタンプを減算した結果) からコンポーネントを抽出します。

この最初のクエリは、日、時間、分、秒のコンポーネントを抽出します。

<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>

合計ミリ秒を取得するには、次のコンポーネントを変換して合計します。

<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>

重要な注意: ROUND 関数は、秒がミリ秒単位で正確に表現されることを保証します。

合計ミリ秒を計算することは可能ですが、多くの場合、INTERVAL DAY TO SECOND の結果を保持するか、時間単位ごとに個別の列を使用する方が現実的です。 ただし、この方法では、必要に応じて正確なミリ秒の計算が可能です。

以上が2 つの Oracle タイムスタンプ間のミリ秒の差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。