日期与 int 不兼容

新手上路,请多包涵

我收到此错误,虽然我尝试搜索现有答案,但我无法在 mt 查询中实现

所以我有:

消息 206,级别 16,状态 2,行 3 操作数类型冲突:日期与 int 不兼容

这是我的查询:

 Select   emp_desc, SUM(Price*Num_Of_Products)
from     sales
Where    sale_date between 2014-01-01 and 2017-01-01
GRoup By emp_desc

有什么建议么?非常感谢

原文由 johndoe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

日期文字周围的单引号:

 select
    emp_desc
  , sum(Price * Num_Of_Products)
from sales
where sale_date >= '20140101'
  and sale_date <  '20170101'
group by emp_desc

此外, between 可能没有做你认为它在那里做的事情。

参考:

The only truly safe formats for date/time literals in SQL Server, at least for datetime and smalldatetime , are: YYYYMMDD and YYYY-MM-DDThh:mm:ss[.nnn]

- 要改掉的坏习惯:错误处理日期/范围查询 - Aaron Bertrand

原文由 SqlZim 发布,翻译遵循 CC BY-SA 4.0 许可协议

以上绝对有效或仅通过添加单引号,如果日期以日期时间格式存储,您也可以尝试这种方式

Select   emp_desc, SUM(Price*Num_Of_Products)
from     sales
Where    convert(varchar(10),sale_date,120)  between '2014-01-01' and '2017-01-01'
GRoup By emp_desc

原文由 Ven 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏