본문 바로가기

MS SQL Server/T-SQL

MSDB 실행일정 date type으로 변경하기

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