将前导零添加到varchar字段

时间:2015-12-04 17:12:46

标签: sql sql-server tsql

我有一个varchar(8)字段,其中包含我从float转换为varchar的日期值。

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

  • 8 char示例:12162003

  • 7 char示例:5072004(需要前导零)

查询:

select birthdate_new from table_name 

3 个答案:

答案 0 :(得分:11)

您可以使用RIGHT

SELECT RIGHT('00000000' + birthdate_new, 8) AS birthdate_new
FROM table_name;

LiveDemo

如果您想UPDATE字段使用:

UPDATE table_name
SET birthdate_new = RIGHT('00000000' + birthdate_new, 8)
WHERE LEN(birthdate_new) < 8;

答案 1 :(得分:7)

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

SELECT REPLICATE('0', 8-LEN(birthdate_new)) + birthdate_new AS 8_len_birthdate 

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

答案 2 :(得分:2)

因为它总是7/8你可以:

select right('0' + fld, 8)

select case when len(fld) = 7 then '0' else '' end + fld