我有一个varchar(8)
字段,其中包含我从float
转换为varchar
的日期值。
有些记录有八个字符,有些有七个字符。我想通过在具有7的那些中添加前导零来使它们具有相同的长度。
8 char示例:12162003
7 char示例:5072004(需要前导零)
查询:
select birthdate_new from table_name
答案 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