mysql> CREATE TABLE t1 (
-> id INT NOT NULL AUTO_INCREMENT,
-> money INT(11) NOT NULL,
-> PRIMARY KEY(id))
-> ENGINE = MyISAM;
Query OK, 0 rows affected (0.01 sec)
mysql> DESCRIBE t1;
+-------+---------+------+-----+---------+----------------
| Field | Type | Null | Key | Default | Extra
+-------+---------+------+-----+---------+----------------
| id | int(11) | NO | PRI | NULL | auto_increment
| money | int(11) | NO | | NULL |
+-------+---------+------+-----+---------+----------------
2 rows in set (0.01 sec)
mysql> SELECT * FROM t1;
Empty set (0.00 sec)
mysql> INSERT INTO t1 (money) VALUES (`10.01`);
ERROR 1054 (42S22): Unknown column '10.01' in 'field list'
mysql> INSERT INTO t1 (money) VALUES ('10.01');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM t1;
+----+-------+
| id | money |
+----+-------+
| 1 | 10 |
+----+-------+
1 row in set (0.00 sec)
mysql> ALTER TABLE t1 MODIFY COLUMN money DECIMAL(19,4);
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM t1;
+----+---------+
| id | money |
+----+---------+
| 1 | 10.0000 |
+----+---------+
1 row in set (0.00 sec)
mysql> INSERT INTO t1 (money) VALUES ('10.12');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM t1;
+----+---------+
| id | money |
+----+---------+
| 1 | 10.0000 |
| 2 | 10.1200 |
+----+---------+
2 rows in set (0.00 sec)
당신은 DD에 문제가 없습니다. 그러나 PHP 코드를 검토하여 코드가 십진수 값으로 올바르게 작동하는지 확인해야합니다.
출처
2010-06-07 17:43:33
smg
4 자리 10 진수? 무슨 통화를 저장할거야? –
테이블의 데이터 유형을 변경하는 데는 문제가 없어야하지만 데이터 조작은 의심 스럽습니다. 귀하의 게시물에 대해서는 전혀 알지 못합니다. –
@Col-USD. 그것은 단지 '19,4'가 대답 중 하나에 불과하다는 것입니다. 나는 19.2 달러가 USD를 위해 할 것이라고 생각한다. –