ホームページ > データベース > mysql チュートリアル > Oracle で時差をミリ秒単位で計算するにはどうすればよいですか?

Oracle で時差をミリ秒単位で計算するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-11 20:57:42
オリジナル
622 人が閲覧しました

How to Calculate Time Differences in Milliseconds in Oracle?

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 つのタイムスタンプがあるとします:

  • タイムスタンプ 1: 2023-02-06 12:45:34.123
  • タイムスタンプ 2: 2023-02-05 11:30:15.678

時差をミリ秒単位で計算するには、次のクエリを使用できます:

<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート