Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/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
C# 计算SQL中开始时间和结束时间的月报,不包括星期日_C#_Sql_Asp.net_C# 4.0 - Fatal编程技术网

C# 计算SQL中开始时间和结束时间的月报,不包括星期日

C# 计算SQL中开始时间和结束时间的月报,不包括星期日,c#,sql,asp.net,c#-4.0,C#,Sql,Asp.net,C# 4.0,我有表格[Mst_Daily_Report_Pds],其中我有开始时间和结束时间,它计算“11-01-2016”和“11-30-2016”之间的日期,输出将显示在图表中 例: 所以这个百分比是85%,这是错误的数据 我的问题是它也包括周日,这是不必要的。如何排除周日值 请检查以下代码: select Name,Actual_Hours,round((Actual_Hours/((DATEDIFF(DAY,'11-01-2016' ,'11-30-2016')+1)*8.5))*100,0) a

我有表格
[Mst_Daily_Report_Pds]
,其中我有开始时间和结束时间,它计算“11-01-2016”和“11-30-2016”之间的日期,输出将显示在图表中

例:

所以这个百分比是85%,这是错误的数据

我的问题是它也包括周日,这是不必要的。如何排除周日值

请检查以下代码:

select Name,Actual_Hours,round((Actual_Hours/((DATEDIFF(DAY,'11-01-2016'  ,'11-30-2016')+1)*8.5))*100,0) as percentage 
from (select Name , SUM(actual_Hours) Actual_Hours  
from ( select Name,ACTUAL_HOURS=sum(DATEPART(hh,[Time_Taken_in_Min]))+sum(DATEPART(MINUTE,[Time_Taken_in_Min])) /60  
FROM [HR_Admin].[dbo].[Mst_Daily_Report_Pds]  where date between  '11-01-2016'  and  '11-30-2016'   
    GROUP BY  Name )o group by Name  )a order by Actual_Hours desc
请帮助我排除所有百分比中的星期日值。

您应该创建#易于存储“11-01-2016”和“11-30-2016”之间的日期使用@@DATEFIRST排除星期日@@DATEFIRST用于将一周的第一天设置为1到7之间的数字。因此,临时表将是:

SELECT *  
FROM tempTable
WHERE ((DATEPART(dw, Date) + @@DATEFIRST) % 7) NOT IN (1)  
如果您的SQL数据库设置星期日是一周的第一天。

您应该创建#可存储“11-01-2016”和“11-30-2016”之间的日期,使用@DATEFIRST排除星期日@@DATEFIRST用于将一周的第一天设置为1到7之间的数字。因此,临时表将是:

SELECT *  
FROM tempTable
WHERE ((DATEPART(dw, Date) + @@DATEFIRST) % 7) NOT IN (1)  

如果SQL数据库设置星期天是一周的第一天。

您可以添加示例数据和预期结果吗?您可能还需要排除公共假日,以适应工作时间减少的日子(星期六??)您是否可以添加样本数据和预期结果?您可能还需要排除公共假日,以适应工作时间减少的日子(周六??)