所以目前我的表格如下:
sub
现在,我能够连接到数据库,但是在向数据库插入新行时收到警告:
parts
在我计算开始和结束时间并减去它的持续时间内。我通过四舍五入(认为这是十进制问题)并将其作为字符串传递来玩它,但它看起来像这样:
name -> type
--------------------------------
gameid -> mediumint(7)
timestamp -> timestamp
duration -> decimal (5,5)
winner -> varchar(20)
winner_score -> int(1)
loser -> varvhar(20)
loser_score -> int(1)
试着玩我为它写的东西,看起来像:
Warning: Out of range value for column 'duration' at row 1
出于某种原因,我不断收到错误。不确定gametime = round((time.time() - start_time),5)
是否会影响它。在MySQL后端,一切都很好,除了持续时间(无论长度)总是0.99999。有什么帮助吗?
答案 0 :(得分:1)
decimal(5,5)
表示它只能存储小数。任何带整数的数字都将被截断为0.99999。
mysql> select cast(2 as decimal(5,5));
+-------------------------+
| cast(2 as decimal(5,5)) |
+-------------------------+
| 0.99999 |
+-------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'cast(2 as decimal(5,5))' at row 1 |
+---------+------+------------------------------------------------------------------+
1 row in set (0.00 sec)
要使其正常工作,您可以将列类型更改为其他精度,例如decimal(10,5)
。