Sql server 在特定日期之间选择符合3个标准的数据

Sql server 在特定日期之间选择符合3个标准的数据,sql-server,Sql Server,我需要选择自5月初以来同一部门(dept)中相同memberID请求的所有工作数据。以下是我尝试的代码,但我得到: 将表达式转换为数据类型datetime时出现算术溢出错误 我不知道如何解决这个问题?也许有更好的查询可以执行 select jobID, memberID, dept, [BriefDate], schemeID from ( Select jobID, memberID, dept, [BriefDate],

我需要选择自5月初以来同一部门(dept)中相同
memberID
请求的所有工作数据。以下是我尝试的代码,但我得到:

将表达式转换为数据类型datetime时出现算术溢出错误

我不知道如何解决这个问题?也许有更好的查询可以执行

select jobID,
   memberID,
   dept,
   [BriefDate],
   schemeID from (
 Select jobID,
      memberID,
      dept,
      [BriefDate],
       schemeID,
        RowCnt = Count(*) over(partition by  MemberId, Dept, Convert(date, [briefdate]))
  from [SSRSReports].[dbo].[corporatejobreportdetailed]
  where [BriefDate]>20170501 ) a
 Where a.RowCnt >= 3

BriefDate
列的类型是什么?欢迎使用SO。能否提供“简要日期”列的数据类型?此外,一些样本数据也不会造成伤害。2012-06-08 17:20:53.923这是一个简短日期列格式的示例。我添加了一张带有示例数据的图片,您的错误在其中,在日期周围加上单引号,这是因为您没有将日期文字作为字符串,而是将其作为int。您的代码正在对日期进行隐式转换,并将20170501天添加到1-1-1900,这是一个无效日期。我想简单地将文本更改为字符串就可以解决这个问题。
BriefDate
列的类型是什么?欢迎使用SO。能否提供“简要日期”列的数据类型?此外,一些样本数据也不会造成伤害。2012-06-08 17:20:53.923这是一个简短日期列格式的示例。我添加了一张带有示例数据的图片,您的错误在其中,在日期周围加上单引号,这是因为您没有将日期文字作为字符串,而是将其作为int。您的代码正在对日期进行隐式转换,并将20170501天添加到1-1-1900,这是一个无效日期。我的猜测是,简单地将文本更改为字符串就可以解决这个问题。