1

タイムスタンプの差を分単位で計算するシナリオがあります。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,
4

1 に答える 1