2013-04-03 152 views
0

我有一个带有价格字段的数据库。这个价格字段被定义为varchar。值有点像123,45。我需要将此varchar字段转换为所有记录中的整数。我如何解决这个问题?将varchar转换为整数

+0

为什么要整数?如果这应该是'123.45',那么你会失去'.45' – 2013-04-03 18:47:34

+0

我需要更改为整数字段,因为我需要创建一些报告,但程序只使用整数字段。 – 2013-04-03 19:10:10

+0

那么整数值应该是多少呢? '123'? '12345'? – 2013-04-03 19:10:43

回答

2

如果所有在mySQL中都在进行转换,CAST就是你的朋友。

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast

如果你正在做它的MySQL之外,几乎所有的语言都投功能应该能够采取一种输入作为一个字符串,并试图将其转换为所需的值 - 例如,C#可能使用int.Parse(string);

+0

我认为最好的方法是创建一个新的整数字段。现在我需要知道如何将价格值(varchar字段)存储到这个新的整数字段。 – 2013-04-03 19:07:26

0

你可以用铸造法或修改表

ALTER TABLE yrtable ALTER COLUMN `price` DECIMAL (10,2); 
+0

ALTER TABLE produtos_vendidos ALTER COLUMNpreçoDECIMAL(10,2);这给了我一个错误 – 2013-04-03 18:59:03

+0

您将需要确保该列中的所有值都可以是数字。此外,如果列是主键,则可能需要在更改类型之前删除该列,然后重置该列上的主键。 – iowatiger08 2013-04-03 19:18:21

+0

尝试使用MODIFY关键字。 ALTER TABLE yrtable MODIFY price DECIMAL(10,2); – iowatiger08 2013-04-03 19:21:30

0

这对我更好地工作。它来自文档。

ALTER TABLE yrtable CHANGE columnname columnnameagain BIGINT NOT NULL;