了下表中的字段:SQL服務器 - 日期時間轉換問題領域
運行日期:2011-09-25 00:00:00.000
運行時間:05:00:00
運行時間:3點22分51秒
我需要的是DATEFORMAT
運行日期+運行時間=工作的開始時間(日期時間格式)
運行日期+(運行時間+運行持續時間)=作業結束時間(日期時間格式)
我正在努力做轉換。任何人都可以請幫忙。
這是存儲過程我使用的 - 任何人都可以告訴我如何監控這一點:
ALTER PROCEDURE [DBO] [Sp_listjobrunhistory] @dateparam DATETIME, @JobName VARCHAR(100) AS 。 BEGIN SELECT --sysjobhistory.server, sysjobs.name AS JOB_NAME, CASE sysjobhistory.run_status WHEN 0 THEN '失敗' WHEN 1 THEN '成功' ELSE '???' END AS run_status, CAST( ISNULL(SUBSTRING(CONVERT(VARCHAR(8),run_date),1,4)+ ' - ' + SUBSTRING(CONVERT(VARCHAR (8),run_date),5, 2)+ ' - ' + SUBSTRING(CONVERT(VARCHAR( 8),run_date),7,2), '')AS DATETIME) AS [運行日期],
Isnull(Substring(CONVERT(VARCHAR(7), run_time+1000000), 2, 2) + ':'
+
Substring(CONVERT(VARCHAR(7), run_time+1000000), 4, 2
)
+
':' +
Substring(CONVERT(VARCHAR(7), run_time+1000000), 6, 2), '')
AS
[Run TIME],
Isnull(Substring(CONVERT(VARCHAR(7), run_duration+1000000), 2, 2) +
':' +
Substring(CONVERT(VARCHAR(7), run_duration+1000000),
4,
2)
+ ':' +
Substring(CONVERT(VARCHAR(7), run_duration+1000000), 6, 2),
''
) AS
[Duration],
Isnull(Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 2, 2) + ':'
+
Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 4, 2
)
+
':' +
Substring(CONVERT(VARCHAR(7), run_time+run_duration+1000000), 6, 2), '')
AS
[Total TIME],
sysjobhistory.step_id,
sysjobhistory.step_name,
sysjobhistory.MESSAGE
FROM msdb.dbo.sysjobhistory
INNER JOIN msdb.dbo.sysjobs
ON msdb.dbo.sysjobhistory.job_id = msdb.dbo.sysjobs.job_id
WHERE sysjobhistory.run_date <= Datepart(yyyy, @dateparam) * 10000 +
Datepart(mm, @dateparam) * 100 +
Datepart
(
dd, @dateparam)
AND sysjobs.name = @JobName --remove this line if you want to show all jobs for the specified day
ORDER BY instance_id DESC
END 此致
你使用什麼版本的SQL Server?什麼是列的數據類型? –
@MikaelEriksson很好的電話,我應該在回答之前提問。我假定最少的SQL Server 2008. – 2011-09-25 17:11:35