Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 每隔几秒钟convert(varchar(8)、dateadd(second,12345,0)、114)因为经理希望将数据导出到Excel并以小时:分钟:秒为单位读取时间。平均处理时间、ASAs等,KPI的一部分。只是好奇,为什么要使用自定义函数将秒转换为_Function_Reporting Services_Sql Server 2014 - Fatal编程技术网

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)