将mysql类型从varchar转换为decimal

时间:2013-04-11 19:03:11

标签: mysql

当我是菜鸟时,我开发了一个网站来存储日常开支,费用保存为varchar。现在我想只是将数据库的结构(包含所有数千个数据)改为十进制(我发现这是存储货币的最佳方式)。我的问题是,所有费用数据都是完整的吗?还是会破坏任何东西?

2 个答案:

答案 0 :(得分:3)

我建议采用分层方法:

  • 更改数据库结构并添加小数字段。
  • 从数据库中选择数据为您选择的编程语言。
  • 使用该语言转换数据,编写SQL脚本以插入(或直接插入)。
  • 删除VARCHAR字段
  • 将DECIMAL字段重命名为VARCHAR字段的名称。

答案 1 :(得分:1)

取决于你有多少......?如果您有常量小数(例如总是2位小数),那么您可以将类型更改为decimal(8,2) 6个整数和2个小数。 如果数据小于2小数2.1 => 2.10 ,但另一方面,如果你有超过2位小数,那么它将 2.118 => 2.11 所以要小心。

进行一些CAST测试,您可能想要阅读这个问题:Problem convert column values from VARCHAR(n) to DECIMAL