当使用Python并对MYSQL执行一条Select语句从一列中选择09时,0将被删除,并且只打印9。
有没有办法拉出所有的数字,也就是包括前导零?
发布于 2009-08-20 18:40:12
几乎可以肯定的是,您的查询、表定义或您正在使用的ORM中有一些东西认为列是数字,并将结果转换为整数。您必须将列定义为字符串(everywhere!)如果你想保留前导零。
编辑:服务器上的ZEROFILL不会删除它。Python将整数列视为Python整数,没有前导零和句号的列。您必须将列类型更改为VARCHAR,在Python语言中使用类似于"%02d" % val的内容,或者在查询中放置一个CAST(my_column AS VARCHAR)。
发布于 2009-08-20 18:47:26
MySQL在列定义中支持以下内容:
CREATE TABLE MyTable (
i TINYINT(2) ZEROFILL
);
INSERT INTO MyTable (i) VALUES (9);
SELECT * FROM MyTable;
+------+
| i |
+------+
| 09 |
+------+发布于 2012-10-18 16:18:01
最好的选择是按照Eevee的建议使用CAST,但您必须使用CAST ( ur_field AS CHAR(2) ),因为转换为varchar有此问题,如本文所述
https://stackoverflow.com/questions/1308038
复制相似问题