Oracle データベースのミリ秒の時差を計算します
Oracle Database では、2 つのタイムスタンプ間のミリ秒単位の時間差の計算は一般的なタスクであり、これにより開発者は期間を正確に測定したり、時間関連のイベントを比較したりできます。
オラクルの手法
TIMESTAMP 型の 2 つの変数を減算すると、Oracle は INTERVAL DAY TO SECOND 値を返します。この間隔には、データベース プラットフォーム (Windows/Unix) に応じて、ミリ秒またはマイクロ秒が含まれます。 (EXTRACT 関数を使用して) この間隔の個々の要素を抽出することにより、開発者は次の式を使用して合計ミリ秒数を計算できます:
<code class="language-sql">总毫秒数 = (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))</code>
計算例
2 つのタイムスタンプがあるとします:
時差をミリ秒単位で計算するには、次のクエリを使用できます:
<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 timestamp1 - timestamp2 AS diff FROM dual);</code>
このクエリは、2 つのタイムスタンプ間の合計ミリ秒数を返します。この場合:
<code>total_milliseconds: 86400000 + 54000000 + 1800000 + 98543</code>
その他の方法
開発者は、合計ミリ秒を手動で計算するだけでなく、Oracle の組み込み関数を使用してこの目的を達成することもできます。たとえば、TO_CHAR 関数を使用すると、INTERVAL DAY TO SECOND 値をミリ秒を含む文字列表現に変換できます。あるいは、 DBMS_OUTPUT パッケージには PUT_LINE プロシージャが用意されており、開発者は間隔の各コンポーネント (日、時、分、秒、ミリ秒など) を個別に出力できます。
以上がOracle で時差をミリ秒単位で計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。