我为此尝试了几种解决方案,但似乎都没有效果。我有一个INT(10)
的邮政编码列。
我需要将其转换为(我猜是VARCHAR),以便可以存储带有前导零的邮政编码。现在它们是“8721”而不是“08721”。
我试过了:
SELECT RIGHT('0000'+ CONVERT(VARCHAR,zip_code),5) AS NUM FROM p23data;
但是我收到了错误:
check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR,zip_code),5) AS NUM FROM p23data' at line 1
我认为以上是创建新列,但我只需要更新现有的zip_code
列。
我在这里做的不是什么?
答案 0 :(得分:8)
LPAD
将处理前导零:
ALTER TABLE p23data CHANGE zip_code zip_code CHAR(5);
UPDATE p23data SET zip_code = LPAD(zip_code, 5, '0');
答案 1 :(得分:-1)
邮政编码不是INT
...它们是五个(或九个或十一个)字符串,恰好由字符0
到9
组成。