将前导零添加到varchar字段

joh*_*nch 2 sql t-sql sql-server

我有一个字段是varchar(8),认为我从转换后的日期值floatvarchar.

有些记录有八个字符,有些有七个字符.我想通过在具有7的那些中添加前导零来使它们具有相同的长度.

  • 8 char示例:12162003

  • 7个例子:5072004(需要一个前导零)

查询:

select birthdate_new from table_name 
Run Code Online (Sandbox Code Playgroud)

Luk*_*zda 11

你可以使用RIGHT:

SELECT RIGHT('00000000' + birthdate_new, 8) AS birthdate_new
FROM table_name;
Run Code Online (Sandbox Code Playgroud)

LiveDemo

如果你想UPDATE现场使用:

UPDATE table_name
SET birthdate_new = RIGHT('00000000' + birthdate_new, 8)
WHERE LEN(birthdate_new) < 8;
Run Code Online (Sandbox Code Playgroud)


dfu*_*ako 8

一个适用于更多情况的函数将是REPLICATE.它将值X的次数连接到字符串.

SELECT REPLICATE('0', 8-LEN(birthdate_new)) + birthdate_new AS 8_len_birthdate 
Run Code Online (Sandbox Code Playgroud)

这将花费您的出生日期的长度,从8减去它,然后在前面放置许多前导0,使其成为8个字符.