我想制作一个代码,但它显示的是错误的文字
转换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'
答案 0 :(得分:4)
DATEPART
返回整数,而'DVR'是一个字符串。显然,您的SQL引擎会尝试将“DVR”转换为整数并失败。尝试使用DATEPART
将CAST
的结果转换为字符串(例如varchar)。
答案 1 :(得分:0)
凭证是数字类型吗?如果是这样,那么当您尝试与“DVR”(VARCHAR)进行比较时,错误消息是有意义的。