问题描述
今天用python插入数据到mysql时遇到个问题,明明数据库设置的字段数据类型是float,要存的数据也是float类型,但是存进去后就变成了整数了,比如0.98变成了1.
发现实现因为我创建表的sql语句有问题,因为使用Navicat直接导出的sql语句
表的sql语句如下
CREATE TABLE traffic_and_weather
(
currentTime
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
expedite
float(4,0) NOT NULL,
congested
float(4,0) NOT NULL DEFAULT ‘0’,
blocked
float(4,0) NOT NULL DEFAULT ‘0’,
unknown
float(4,0) DEFAULT ‘0’,
weather
int NOT NULL DEFAULT ‘0’,
PRIMARY KEY (currentTime
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
1
2
3
4
5
6
7
8
9
问题解决方案
问题就出在float(4,0)这里了,小数部分自动是0位,整数部分为4位。自然小数就没有了。所以可以把float(4,0)改成float。