私の質問:スクリプトを使用して、HH:MI:SSの形式で 2 つの日付 (時刻) の差を取得する必要があります。たとえば、2回あった場合:
2012/08/24 13:04:23
2012/08/24 14:15:32
私の結果は次のようになります。
1:11:09
要件: SAP の BusinessObjects Data Services Designer を使用してこれを書いているため、スクリプトは構文規則を満たす必要があります (長い PDF ドキュメントを表示するには、ここをクリックしてください... SAP の構文に慣れていない場合は、実際には制限があることを知っておいてください。 ..)。
私が試したこと:SQL
現在、ユーザーが探しているものを提供する関数で使用できるSQLステートメントをユーザーに提供する関数(以下を参照)がありますが、このデータストアにとらわれないようにしたいと思います.
これが私の現在の機能です(実際には私が探しているものではありません):
#Use this with a SQL function. For example: SQL('DSS_USER', GetTimeDifferenceSQL($time_1, $time_2));
return '
with seconds as (
select 24*60*60*(to_date(\'[$time_1]\', \'YYYY.MM.DD hh24:mi:ss\')
- to_date(\'[$time_2]\', \'YYYY.MM.DD hh24:mi:ss\')) seconds_diff
from dual
)
select to_char(trunc(sum(seconds_diff)/3600), \'FM999999990\') || \':\' || to_char(trunc(mod(sum(seconds_diff),3600)/60), \'FM00\') || \':\' || to_char(mod(sum(seconds_diff),60), \'FM00\')
from seconds
';
これは、データ ストアから独立して、スクリプトだけで計算されるようにしたいため、機能しません。
また、日付を10進数に変換してからJED_Time(int)
関数を使用しようとしましたが、10進数が10を基数とし、時間が基数であることを除いて機能します...したがって、機能しません。
私のホールドアップ:時間には定義されたベースがないという事実に苦労しています....どんな助けでも本当に素晴らしいでしょう! ありがとう!