以下のようにSQLのジョブの実行時間が記録されているテーブルがあり以下のクエリにて特定期間の処理結果を抽出、データの加工処理を行おうとしております。
run_dateカラムの日付の部分20181106にハイフンによる区切り文字を以下のように挿入したいと思いLEFT,RIGHT,SUBSTRING関数などを使って試行錯誤しているのですがなかなか期待した通りの結果が得られずにおります。恐れ入りますが、どなたかアドバイス頂戴できますと幸いです。
--例:LEFT(exec.run_date, 4) + '-' + RIGHT(exec.run_date, 6) + '-'
期待した結果:2018-11-06
name run_date execution_time
maintenance 20181106 00:03:23
select name,run_date, --例:LEFT(exec.run_date, 4) + '-' + RIGHT(exec.run_date, 6) + '-' LEFT(exec.exec_duration, 2) + ':' + SUBSTRING(exec.exec_duration, 3, 2) + ':' + RIGHT(exec.exec_duration, 2) AS execution_time from ( select job.name,jhis.instance_id,jhis.job_id,jhis.run_date, RIGHT(REPLICATE('0', 5) + CONVERT(varchar, jhis.run_duration), 6) AS exec_duration from msdb.dbo.sysjobhistory as jhis join msdb.dbo.sysjobs job on job.job_id = jhis.job_id where jhis.step_id = 0 and jhis.run_status = 1 and jhis.run_date between 20181106 and 20181112 ) as exec
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/13 15:13