Oracle データベース内の 2 つのタイムスタンプ間のミリ秒の差を正確に計算します
Oracle データベースでは、2 つの TIMESTAMP 型変数間の時間差 (ミリ秒単位) を直接減算して計算できます。結果は、オペレーティング システム プラットフォームに応じて、ミリ秒またはマイクロ秒を含む INTERVAL DAY TO SECOND として表示されます。
Windows システムの sytimestamp には通常ミリ秒が含まれますが、Unix システムではマイクロ秒が含まれます。例:
<code class="language-sql">select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) from dual;</code>
INTERVAL DAY TO SECOND の各時間単位を抽出するには、EXTRACT 関数を使用できます。例:
<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>
合計ミリ秒数を取得するには、これらの時間単位をミリ秒に変換し、次を追加します。
<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>
ただし、多くの場合、ミリ秒の合計数を計算するよりも、INTERVAL DAY TO SECOND 表現を保持するか、別の列を使用して異なる時間単位を格納する方が現実的です。
以上がOracle の 2 つのタイムスタンプの差をミリ秒単位で計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。