[英]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”强制转换为整数,然后失败。 尝试使用CAST
将DATEPART
的结果转换为字符串(例如varchar)。
凭证是数字类型吗? 如果是这样,那么当您尝试与VARCHAR的“ DVR”进行比较时,该错误消息就很有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.