Function 每隔几秒钟convert(varchar(8)、dateadd(second,12345,0)、114)因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。只是好奇,为什么要使用自定义函数将秒转换为
Function 每隔几秒钟convert(varchar(8)、dateadd(second,12345,0)、114)因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。只是好奇,为什么要使用自定义函数将秒转换为,function,reporting-services,sql-server-2014,Function,Reporting Services,Sql Server 2014,每隔几秒钟convert(varchar(8)、dateadd(second,12345,0)、114)因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。只是好奇,为什么要使用自定义函数将秒转换为时间convert(varchar(8)、dateadd(second,12345,0)、114)因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。WHERE CAST(DateOfC
每隔几秒钟
convert(varchar(8)、dateadd(second,12345,0)、114)
因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。只是好奇,为什么要使用自定义函数将秒转换为时间convert(varchar(8)、dateadd(second,12345,0)、114)
因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。WHERE CAST(DateOfCalls as date)>=CAST('2017-03-08'as date)--和Midnight StartDate<'2017-03-09'也给了我3月9日的结果。您不需要>=和<您只需要WHERE CAST(DateOfCalls as date)=CAST(@Report\u date as date)。非常感谢,先生。我像你说的那样创建了函数。它在我所有的秒场上都非常有效。非常感谢。我非常感谢。WHERE CAST(DateOfcall as date)>=CAST('2017-03-08'as date)--和Midnight StartDate也给了我3月9日的结果。您不需要>=和<您只需要WHERE CAST(DateOfcall as date)=CAST(@Report_date as date)。非常感谢,先生。我像你说的那样创建了函数。它在我所有的秒场上都非常有效。非常感谢。非常感谢。非常感谢,先生。Dateadd函数非常有用。我还没试过剧本的另一部分,但我相信那也行。非常感谢你,先生。Dateadd函数非常有用。我还没有试过剧本的另一部分,但我相信那也行。
CREATE FUNCTION dbo.UDF_SecondsToHMS(@Seconds int) RETURNS table AS
RETURN (
SELECT CONVERT(VARCHAR(20), @Seconds / 3600) + ':'
+ RIGHT('00' + CONVERT(VARCHAR(2), (@Seconds % 3600) / 60) ,2) + ':'
+ RIGHT('00' + CONVERT(VARCHAR(2), @Seconds%60), 2) AS [HMS] );
SELECT
SUM(CallsAnswered) CallsAnswered
,SUM(TotalCalls) TotalCalls
,(SUM(TimeToAnswerTotal) / 600) [ASA] --> How do I call the function here too?
----------------------- (I called the function here)
,(SELECT
(SELECT HMS
FROM [UDF_SecondsToHMS](SUM (DATEDIFF(second, AgentLoginTime, AgentLogoutTime)))) [HMS]
FROM [AgentStats]
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, StartDate)) = CAST('2017-03-08' AS DATETIME)
) [Actual Shift Hrs.]
----------------------- (End of the function here. I had help calling this function here.)
,(SUM(ACDDuration) / 600) [Avg. ACD Time] --> How do I call the function here too?
FROM [CallsByPeriodStats]
WHERE DateOfCalls >= @Report_Date --typically the date shows as '2017-02-22 00:00:000'
AND DateOfCalls < @Report_Date + 1 day of the month --typically it should be '2017-02-23 00:00:000'
--but what if @Report_Date is last day of month?
GROUP BY CAST[StartDate as DATE]
SELECT
CallsAnswered = SUM(CallsAnswered)
,TotalCalls = SUM(TotalCalls)
,[ASA] = convert(varchar(8),dateadd(second
,(SUM(TimeToAnswerTotal) / 600)
,0),114)
,[Actual Shift Hrs.] = (
SELECT convert(varchar(8),dateadd(second
, SUM (DATEDIFF(second, AgentLoginTime, AgentLogoutTime))
,0),114) as HMS
FROM [AgentStats]
WHERE DATEADD(day, 0, DATEDIFF(day, 0, StartDate)) = CAST('20170308' AS DATETIME)
)
, [Avg. ACD Time] = convert(varchar(8),dateadd(second
,(SUM(ACDDuration) / 600)
,0),114)
FROM [CallsByPeriodStats]
WHERE DateOfCalls >= @Report_Date --typically the date shows as '2017-02-22 00:00:000'
AND DateOfCalls < dateadd(day,1,@Report_Date) -- + 1 day of the month
--but what if @Report_Date is last day of month?
--a: goes to the next month
GROUP BY CAST[StartDate as DATE]
CREATE FUNCTION dbo.UDF_SecondsToHMSVarChar(@Seconds int) RETURNS varchar(20) AS
BEGIN
RETURN (
SELECT CONVERT(VARCHAR(20), @Seconds / 3600) + ':'
+ RIGHT('00' + CONVERT(VARCHAR(2), (@Seconds % 3600) / 60) ,2) + ':'
+ RIGHT('00' + CONVERT(VARCHAR(2), @Seconds%60), 2) AS [HMS]
)
END
,(SUM(TimeToAnswerTotal) / 600) [ASA]
, dbo.UDF_SecondsToHMSVarChar((SUM(TimeToAnswerTotal) / 600)) [ASA]
WHERE DateOfCalls >= @Report_Date
WHERE CAST(DateOfCalls AS DATE) = CAST(@Report_Date AS DATE)