タイムスタンプの差を分単位で計算するシナリオがあります。2 つのテーブルに 1 つの共通フィールド、つまり dw_job_id があり、2 つのテーブルを結合して推測し、計算します。
(scratch.COGIPF_RUNREPORT_test2.end_ts - concat(proct_dt, scratch.dw_job_sla_dim_test.sla_time)
例、分単位の減算:
(2018-03-05 01:53:14.201000 - 2018-03-05 08:00:00.000000)= -366
以下のレコードを使用すると、非常に明確になります。
最初のクエリには end_ts があります。
sel * from scratch.COGIPF_RUNREPORT_test2 where dw_job_id=1226
結果:
dw_job_id proct_dt start_ts end_ts time_diff dw_job_status_id
1,226 2018-03-05 00:00:00 2018-03-05 01:50:23 2018-03-05 01:53:14.201000 3 12
1,226 2018-03-06 00:00:00 2018-03-06 01:42:56 2018-03-06 01:45:23.553000 3 12
2 番目のクエリ:
select * from scratch.dw_job_sla_dim_test where dw_job_id=1226
結果:
dw_job_id sla_hour sla_minute sla_time
1,226 8 0 08:00:00.000000
最終結果は次のようになります。
dw_job_id run_date start_timestamp end_timestamp runtime_minutes sla_miss_minutes
1,226 3/5/2018 3/5/2018 01:50:23.000000 3/5/2018 01:53:14.201000 2 -366
1,226 3/6/2018 3/6/2018 01:42:56.000000 3/6/2018 01:45:23.553000 2 -374
例:
分単位の減算:-(2018-03-05 01:53:14.201000 - 2018-03-05 08:00:00.000000)= -366
データ型:
sla_hour INTEGER,
sla_minute INTEGER,
sla_time TIME(6),
end_ts VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,