我需要以下才能成爲唯一標識符,以便它能夠在更大的查詢中正確連接。有沒有更好的方法來做到這一點?在SQL中轉換爲uniqueidentifier
這裏是SQL
-- Report Totals
-- Set date range and this query will look at each specific Crystal Report and how long each one takes to run.
DECLARE @StartDate DATETIME,
@EndDate DATETIME;
SELECT @StartDate = '10/01/2013', @EndDate = '1/1/2014';
SELECT COUNT(*) AS RunCount, AVG(DATEDIFF(s, SJ.queuedtime, SJ.completetime)) AS TotalTime,
AVG(DATEDIFF(s, SJ.queuedtime, SJ.starttime)) AS WaitTime,
AVG(DATEDIFF(s, SJ.starttime, SJ.completetime)) AS RunTime,
RP.label AS Report, RP.reportTitle
FROM SJob SJ
JOIN RReport R ON CAST(SUBSTRING(SJ.props, CHARINDEX('reportID=', SJ.props, 0) + 9, 36) AS UNIQUEIDENTIFIER) = R.reportID
JOIN RPhysicalReport RP ON R.physicalReportID = RP.physicalReportID
WHERE SJ.queuedtime >= @StartDate and SJ.queuedtime < @EndDate and SJ.jobClass = 'CRWPrint'
GROUP BY RP.label, RP.reportTitle
ORDER BY RunTime DESC
當我運行此我得到
消息8169,級別16,狀態2,9號線從字符串轉換爲uniqueidentifier時 轉換失敗。
向我們展示SJ.props值 – Dimitri
這是一個超過2000個字符的文本字段。其中一些是客戶端數據,所以我不能真正發佈它。它實際上是一個連續的數據串。我可以撤回我需要的部分,它可以工作,但是當我嘗試將其轉換或轉換爲UI時,轉換失敗。 – BSanders
@BSanders然後顯示爲RIGHT(SUBSTRING(SJ.props,CHARINDEX('reportID =',SJ.props,0),45),36)'的結果。我們需要知道它是否具有'UNIQUEIDENTIFIER'的格式。它是否在正確的位置有「-',只有數字和從'A'到'E'的字母? – Lamak