回答
在你的查詢,你的表定義或者你正在使用的ORM中,幾乎肯定有東西認爲該列是數字,並將結果轉換爲整數。如果要保留前導零,則必須將該列定義爲字符串(無處不在!)。
編輯:ZEROFILL
在服務器上不會削減它。 Python將整數列視爲Python整數,而那些列沒有前導零,句點。您必須將列類型更改爲VARCHAR
,在Python中使用類似"%02d" % val
的東西,或將CAST(my_column AS VARCHAR)
置於查詢中。
列的數據類型是什麼?如果要保留前導零,則應該使用非數字列類型,如VARCHAR
。
格式化數字可以用Python前導零,使用格式說明:
>>> print "%02d" % (1,)
01
列類型是tinyint。 當使用PHP從表中選擇時,它給了我前導零。 – 2009-08-20 18:42:38
這聽起來像一個PHP錯誤。數字不應該有前導零。 – 2009-08-20 18:46:15
MySQL支持此列定義:
CREATE TABLE MyTable (
i TINYINT(2) ZEROFILL
);
INSERT INTO MyTable (i) VALUES (9);
SELECT * FROM MyTable;
+------+
| i |
+------+
| 09 |
+------+
是的,前導零在表中,但不在Python中的select和print語句中 – 2009-08-20 18:48:19
你可以通過運行在該列中的每個查詢函數如:
if len(str(number)) == 1: number = "0" + str(number)
這會將數字轉換爲字符串,但儘可能我知道,Python不允許其數字數據類型中的前導零。有人糾正我,如果我錯了。
編輯:John Millikin的答案與此相同,但效率更高。感謝您教我關於格式說明符!
最好的選擇將是使用CAST
通過Eevee
的建議,但你必須使用CAST (ur_field AS CHAR(2))
作爲在這個崗位
- 1. MySQL 5.1.41前導零被刪除
- 2. 向mySQL列添加前導零
- 3. mysql從字段中刪除前導零
- 4. Python/MySQL:沒有數據 - 獲取,選擇或處理零行
- 5. MySQL的選擇前行
- 6. mysql - 當count大於零時選擇true
- 7. 前導零週期
- 8. 替換前導零
- 9. SQL - 帶前導零
- 10. PHP Excel導出丟棄前導零
- 11. RegEx省略前導零
- 12. MySQL之前的MySQL選擇值
- 13. MySQL和Python選擇語句
- 14. 註冊前識別前導零?
- 15. 零位整數,除前導零之外
- 16. SQL導入嚮導丟棄前導零
- 17. 保持前導零ç
- 18. printf與前導零在C
- 19. 前導零計數器
- 20. BigDecimal()省略前導零
- 21. 如何有前導零
- 22. 保持前導零位
- 23. inet_addr函數和前導零
- 24. TYPO3的RealURL:UID帶前導零
- 25. 如何創建前導零?
- 26. 瞭解前導零的str_pad()
- 27. 如何刪除前導零?
- 28. 處理多個前導零
- 29. 帶前導零的int.Parse()
- 30. QTP - JavaTable - GetCellData - 帶前導零
什麼是列的數據類型給定鑄造
varchar
有這個問題?它是一個文本列(varchar)還是一個真正的數字列(整數,小數...)?如果只是打印值的問題,則可以使用Python的*%*運算符,如*「%04d」%(value_of_column,)* – Dirk 2009-08-20 18:40:44他的列類型爲tinyint。當使用PHP從表中選擇時,它給了我前導零。 – 2009-08-20 18:43:15