質問: こちらで質問させていただくのは初めてなので 分かりづらかったら申しありません。 ### 実現したいこと やりたいことは、SQLでの日付の計算です。 データベースから文字列で"年月日","時分1","時分2","時分3","時分4" とデータを取得して、 時分間の時差を分単位で求めたいのです。 データの例 ("20160605", "1200", "1800", "2100", "2330") 求めたい値 (360(6時間) , 180(3時間) ,150(2時間30分) ) 取得するのが、文字列でデータの形式("HHMM") は固定です ### 発生している問題 現状では、文字列をDATE型に変換し計算しているのですが、 その際に、時間が 00:00 ~ 23:59 の間でないと計算ができないため、 計算したい値が 23:00 ~ 24:00 や 23:30 ~ 24:30 の場合に エラーが発生してしまい、計算ができなくて困っています ### 該当のソースコード TO_NUMBER(TO_DATE("時分2","HH24MS" ) - TO_DATE("時分1" , ""HH24MS) ) *24 * 60 ) ### 現在コードが見れないため、うろ覚えですが、こんな感じで作ってます。 まず、フォーマットを直さなければと、思うのですが、 どう書いたらいいか分からないため、このままです。 どうかお力をお貸しください、お願いします。
回答: Oracleだと以下になります。 ``` select (to_date('18:00','hh24:mi') - to_date('12:00','hh24:mi')) * 24 * 60 from dual; ``` OracleだとDATE型同士で計算すると日付で算出されますので、 ×24h×60minで求めたいものが算出できるかと思います。