在MSSQL建立系統日誌時,有一個Table叫做[sysjobschedules],其中欄位[next_run_date]及[next_run_time]定義為int,與一般常使用的Datetime不同,於是使用Convert轉換,語法如下。
SELECT [schedule_id]
,[job_id]
,[next_run_date]
,[next_run_time]
,case when next_run_date = 0
then null
else CONVERT(DATETIME, CONVERT(NVARCHAR(4), [next_run_date] / 10000) + '-' +
CONVERT(NVARCHAR(2), [next_run_date] % 10000 / 100) + '-' +
CONVERT(NVARCHAR(2), [next_run_date] % 100) + ' ' +
CONVERT(NVARCHAR(2), [next_run_time] / 10000) + ':' +
CONVERT(NVARCHAR(2), [next_run_time] % 10000 / 100) + ':' +
CONVERT(NVARCHAR(2), [next_run_time] % 100), 120)
end datetime
FROM [msdb].[dbo].[sysjobschedules]