我需要在此数据库字段中插入一个值,但如果此数字少于9位,则需要使用前导0填充,例如,12345
之前应转换为000012345
将其插入数据库。我正在尝试这个,但它不起作用,我不能使用存储过程,是否可能?
insert into my_table (right('00000000' + cast(account as char(8)), 8)) values ('12345')
答案 0 :(得分:3)
这里有两个问题:
试试这个:
INSERT INTO my_table (Account)
VALUES (RIGHT('00000000' + CAST(12345 AS VARCHAR(8)), 8))
答案 1 :(得分:0)
使用STR()将数字转换为右对齐字符串。使用CONVERT(varchar(8),...)的过程无法参数化,因为varchar(@size)无效。
SELECT REPLACE(STR(12345,8),' ','0')