查询语句的选择部分的结果

时间:2016-08-23 08:03:40

标签: sql sql-server-2008 stored-procedures

我有一个存储过程来计算两个日期之间的工作日数

select 
    casekey, LoginName, casestartdatedate,
    dbo.CalcWorkDaysBetween(casestartdatedate, GETDATE()) AS 'WD'
from 
    Car_case with (nolock)
where 
    dbo.CalcWorkDaysBetween(casestartdatedate, GETDATE()) <= DATEADD(dd,DATEDIFF(dd, 0, GETDATE()), -60)
    and CaseClosedDateDate is null
order by 
    CaseStartDateDate asc

在我选择的声明部分中,我想显示案件开始日期和今天的日期之间的工作日数。这部分很好。但我只想回复“工作日”的情况。是60天或更长时间 - 我在这部分查询中遇到了问题。请参阅上面的代码。不太确定为什么它不起作用。它返回的结果不到60天,让我意识到我在某个地方出了问题。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您只需要修复where条件:

select casekey, LoginName, casestartdatedate,
       dbo.CalcWorkDaysBetween(casestartdatedate, GETDATE()) AS WD
from Car_case cc with (nolock)
where dbo.CalcWorkDaysBetween(casestartdatedate, GETDATE()) >= 60 and
      CaseClosedDateDate is null
order by CaseStartDateDate asc;

注意:在您的版本中,您将函数的结果(可能是整数)与日期进行比较。