• ベストアンサー

日付の計算方法

ド忘れ&すぐにDBに触れない状態で困ってます。 日付型 - 日付型 の値をHH24:MI:SS形式で求める方法を教えてください。 例. 日付A = TO_DATE('20060101100000','YYYYMMDDHH24MISS')   日付B = TO_DATE('20060101090000','YYYYMMDDHH24MISS') の時に、日付A - 日付Bの値を、'1:00:00'として求めたいのです。 分かりずらい説明ですみません。 ちなみにOracle8iです。

質問者が選んだベストアンサー

  • ベストアンサー
  • gdcootie
  • ベストアンサー率42% (3/7)
回答No.2

実機で試した結果下記の通り、算出することができます。 select floor(sum_sec/3600) HOUR floor(mod(sum_sec/3600)/60) MINUTE floor(sum_sec - floor(sum_sec/3600)*3600 + floor(mod(sum_sec/3600)/60)*60) from (select abs(DATEA-DATEB)*24*60*60 sum_sec from (select TO_DATE('20060101100000','YYYYMMDDHH24MISS') DATEA ,TO_DATE('20060101090000','YYYYMMDDHH24MISS') DATEB from dual) ) ;

hiro_sun
質問者

お礼

お礼が遅れてもうしわけありません。 大変参考になりました。

その他の回答 (1)

  • gdcootie
  • ベストアンサー率42% (3/7)
回答No.1

select to_char(int((日付A-日付B)/24),'HH24')||to_char(int((日付A-日付B)/24/60),'MI')||to_char(int((日付A-日付B)/24/60/60),'SS') from dual; とか。 すいません実機で試してないので思いつき

関連するQ&A