使用MIN时 - 算术溢出错误将表达式转换为数据类型datetime

时间:2014-09-09 05:59:27

标签: sql sql-server datetime

我有以下查询抛出一个错误,我不能理解为什么:

      Select * from Correspondences
      where case_id in(000021,00000991,000081,0000731)
      and case_id in(Select min(comm_date_utc) from Correspondences where case_id in               (000021,00000991,000081,0000731))

SQL server给我这个错误: Msg 8115,Level 16,State 2,Line 1 将表达式转换为数据类型datetime的算术溢出错误。

任何人都能帮助我理解为什么以及我应该尝试解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为这就是你想要的:

  Select c.*
  from Correspondences c
  where case_id in(000021,00000991,000081,0000731)
  and comm_date_utc = (Select min(comm_date_utc)
                       from Correspondences c2
                       where c2.case_id = c.case_id
                      );

您的查询存在的问题是它将caseid与日期时间进行比较。此查询根据时间返回每个案例的第一条记录。后者似乎更有可能是查询的意图。