我有一个像小数点(2,1)的列,它的工作正常,但是当我尝试存储像10这样的值时,它存储为9.9 ..某些特定的原因?mysql存储问题
1
A
回答
2
是的,当你说2,1时,你真正说的是:这个列可以存储两个数字,其中一个数字可以在小数点后面。 如果您希望能够保存10.1,您可以使用DECIMAL(3,1),因为10.1总共是3位数字。
它会发出警告,BTW: mysql> SHOW CREATE TABLE t \ G *************************** 1 。***** *********************** 表:t 创建表:CREATE TABLE t
( a
decimal(2,1)DEFAULT '0.0' )ENGINE = InnoDB的默认字符集= LATIN1 1行集(0.00秒)
的MySQL> INSERT INTO T(A)VALUES(10); Query OK,1 row affected,1 warning(0.00 sec)
mysql> SHOW WARNINGS \ G ************************* ** 1.行*************************** 级别:警告 代码:1264 - 消息:超出范围值列 '一个' 1行 1行集(0.00秒)
的MySQL>
-
编辑:并严格模式运行时(http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_traditional )它实际上会发出警告。
3
您的十进制字段的宽度为两位数,其中一位数字位于小数点右侧。这意味着小数点左侧只有一位数字。您不可能在该字段中存储“10”。
相关问题
- 1. TEX - Mysql UTF8_Data存储问题
- 2. Mysql存储过程问题
- 3. mySQL存储函数问题
- 4. MySQL数据存储问题
- 5. mysql存储过程问题
- 6. 存储过程+ mysql问题
- 7. MySQL存储功能问题
- 8. MySQL存储过程声明问题
- 9. 执行Mysql存储过程的问题
- 10. PHP/MySQL存储过程问题
- 11. Mysql二进制存储问题
- 12. Mysql存储过程SQLYog问题
- 13. facebook连接uid mysql存储问题
- 14. Mysql存储过程。这个问题有什么问题?
- 15. IOS存储问题
- 16. 存储问题永久存储iphone
- 17. Java内存转储问题
- 18. SQLite存储日期问题
- 19. 存储库模式问题
- 20. SQL存储过程问题
- 21. BlackBerry持久存储问题,
- 22. 孤立存储问题
- 23. wso2密钥存储问题
- 24. Firebase存储getMetadata()问题
- 25. 存储过程FREETEXT问题
- 26. 问题与存储过程
- 27. 问题存储日期C++
- 28. winRT存储文件问题
- 29. 存储库模式问题
- 30. Oracle存储过程问题
因此,不是提出一个错误mySQL默默'降级'10到9.9?哇... – 2010-06-01 15:31:59
okie.thanks寻求帮助。我误解了我在小数点前2位数字和小数点后1位数字的地方教授的语法 – Hacker 2010-06-01 15:42:44
pjabbott - 是的。如果你发现这种行为不可取,那么你可以在建立连接后发出SET SESSION sql_mode ='TRADITIONAL''。 – Hammerite 2010-06-01 19:26:55