我正在开发一个使用ms-access数据库的应用程序的新版本,因为它变得太慢了。所以我决定使用MySQL作为数据库。我对我的选择很满意。问题是我有一个巨大的数据库,里面装满了价格。这些价格在旧的应用程序中显示正确,但在我的数据库中显示如下:'26,.000000.00','71,9.00000.00','24,9.00000.00'。此字段为
'price' VARCHAR(255) NOT NULL DEFAULT '0', 我不知道如何解决这个问题。这是因为数据类型,还是因为应用程序真的很糟糕?
发布于 2011-05-03 22:32:08
我不知道如何解决这个问题。这是因为数据类型,还是因为应用程序真的很糟糕?
问题应该是数据类型。此thread将帮助您选择一个。
此外,您可能希望将列转换为decimal (或其他数字)类型。它是这样的
ALTER TABLE herpderp add new_price Decimal (19,4) update herpderp set new_price = handy_function(price) ALTER TABLE herpderp DROP COLUMN price 发布于 2011-05-03 22:24:01
我认为你应该使用正确的数据类型来存储这些值,如果你试图存储价格(货币),那么你应该使用Decimal数据类型。
这就是文档所说的:
固定点(精确值)类型
DECIMAL和NUMERIC类型存储精确的数值数据值。这些类型用于保持精确精度非常重要的情况,例如货币数据。在MySQL中,NUMERIC被实现为DECIMAL,因此以下关于DECIMAL的备注同样适用于NUMERIC。
你可以在这里阅读更多信息:http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
https://stackoverflow.com/questions/5870750
复制相似问题