【问题标题】:Procedure in converting int to decimal data type?将int转换为十进制数据类型的过程?
【发布时间】:2010-06-07 17:16:48
【问题描述】:

我有一个int(11) 列,用于存储资金。我阅读了一些关于 SO 的答案,看来我只需要将其更新为 decimal (19,4) 数据类型。

在我实际进行转换之前,我应该了解哪些问题?我的应用程序在 PHP/Zend 中,并且我没有使用 ORM,所以我怀疑我是否需要更新任何类型的类以一致地识别数据类型。

【问题讨论】:

  • 4 个十进制数字?你要存储什么货币?
  • 更改表中的数据类型应该没有任何问题,但是对数据的操作是可疑的——我们从您的帖子中不知道...
  • @Col - 美元。只是19,4 在其中一个答案中。我猜19,2 可以换美元。

标签: php mysql decimal int types


【解决方案1】:
    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)

当您将 int 更改为十进制时,您对 dd 没有任何问题。但是您应该检查您的 PHP 代码,以确保您的代码可以正确使用十进制值。

【讨论】:

  • 呵呵,这就是风格:在输出中保留输入错误的反引号而不是引号 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多