MSDB의 실행 일정을 보면 run_date (int): 20180413, run_time (int): 40330 과 같은 형식으로 되어있어서, 보기 힘고 파싱하기 귀찮다.
그런경우 다음의 쿼리를 써서 Date, Time 포멧으로 Casting 할 수 있다.
--sysjobschedules date값 date,time 포맷으로 변경
SELECT top 1000
date = CAST(CAST(next_run_date as nvarchar(100)) AS date)
, time = CAST( --hh
CASE WHEN REVERSE(SUBSTRING(REVERSE(CAST(next_run_time as nvarchar(100))),5,2)) <> N''
THEN REVERSE(SUBSTRING(REVERSE(CAST(next_run_time as nvarchar(100))),5,2))
ELSE '0'
END
--mm
+ N':'+ CASE WHEN REVERSE(SUBSTRING(REVERSE(CAST(next_run_time as nvarchar(100))),3,2)) <> N''
THEN REVERSE(SUBSTRING(REVERSE(CAST(next_run_time as nvarchar(100))),3,2))
ELSE '0'
END
--ss
+ N':' + REVERSE(SUBSTRING(REVERSE(CAST(next_run_time as nvarchar(100))),1,2))
AS time(0)
)
, next_run_date
, next_run_time
, *
FROM msdb.dbo.sysjobschedules AS JS
WHERE next_run_date = 20180413
order by
JS.next_run_time
'MS SQL Server > T-SQL' 카테고리의 다른 글
SQL로 날짜계산하기 (0) | 2018.03.15 |
---|