• ベストアンサー

(SQL)日数の計算

こんにちは、kwnshと申します。 SQLで SELECT to_char(last_day(SEISAN_YMD),'dd') FROM VIWDKJSWBF M; テーブルに格納されている月の日数を求めた後、 違うテーブルの項目(HHHMM)形式の データの減算を行いたいのですが、 なにかいい方法はないでしょうか?

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

  • ベストアンサー
回答No.2

TO_DSINTERVAL は Oracle 9 からのもののようです。 ということは、Oracle 7 か 8 なんですね? sysdate に 2:30:40 を加算するのだったら、↓こういう感じになります。 select   to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS'),   to_char(sysdate + 2/24 + 30/24/60 + 40/24/60/60, 'YYYY/MM/DD HH24:MI:SS') from dual; SQL*Plus での結果 >TO_CHAR(SYSDATE,'YY TO_CHAR(SYSDATE+2/2 >------------------- ------------------- >2004/01/21 11:00:20 2004/01/21 13:31:00

mako-kwnsh
質問者

お礼

ありがとうございます。 上記の方法で計算することができました。

その他の回答 (1)

回答No.1

SELECT SYSDATE - TO_DSINTERVAL('0' || TO_CHAR(COL1, 'HH24:MI:SS') ) FROM DUAL; のような感じ TO_DSINTERVAL を使用するとかはどうでしょうか。

mako-kwnsh
質問者

お礼

早速のお返事ありがとうございました。 TO_DSINTERVALを使おうとしたのですが、 ORA-01867: 間隔が無効です。という エラーがでました。 OracleにTO_DSINTERVAL関数はないのでしょうか?

関連するQ&A