我需要以下才能成为唯一标识符,以便它能够在更大的查询中正确连接。有没有更好的方法来做到这一点?在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