繁体   English   中英

我的SQL查询有什么问题?

[英]What is the wrong with my sql query?

我想编写一个代码,但显示的文字错误

将varchar值“ DVR”转换为数据类型int时,转换失败。

我不知道哪里有问题? 我的表格中没有数据,因此先前的优惠券值为零。 请帮忙..

select 
   'DVR'+ DATEPART(YEAR, GETDATE()) + 
          RIGHT('00000' + convert(varchar, (ISNULL(MAX(right(voucher, 5)), 0) + 1)), 5) as vno 
from 
   tblledger 
where 
   left(isnull(voucher, 0), 3) = 'DVR'

DATEPART返回整数,而“ DVR”为字符串。 显然,您的SQL引擎尝试将“ DVR”强制转换为整数,然后失败。 尝试使用CASTDATEPART的结果转换为字符串(例如varchar)。

凭证是数字类型吗? 如果是这样,那么当您尝试与VARCHAR的“ DVR”进行比较时,该错误消息就很有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM