MySQL中两列的乘法

时间:2012-08-06 08:48:47

标签: mysql sql

我想获得列fee和列duration之间的乘法结果,但当我Select duration * fee时,我得到0

另外,每栏*费用给我0 ...

这是创建表脚本。

delimiter $$

CREATE TABLE `simvoip` 
(   
`prefix` varchar(45) DEFAULT NULL,  
`destination` varchar(45) DEFAULT NULL,   
`fee` varchar(45) DEFAULT  NULL,   
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  
`dst` varchar(80) CHARACTER SET latin1 NOT NULL DEFAULT '',  
`dstchannel` varchar(80) CHARACTER SET latin1 NOT NULL DEFAULT '',  
`duration` varchar(45) DEFAULT '0' 
) ENGINE=InnoDB DEFAULT
CHARSET=utf8$$*

2 个答案:

答案 0 :(得分:3)

为了达到你想要的效果,你需要将字符串列转换为数字。

试试这个:

SELECT CAST(`duration` AS DECIMAL(10,4)) * CAST(`fee` AS DECIMAL(10,4))
FROM   `simvoip`

顺便说一下,您正在为服务器添加额外的工作,以便在乘以它们之前先转换它们。为什么不存储为DECIMALDouble

答案 1 :(得分:1)

您无法将文本值相乘。您需要使用CAST(fee as integer)或其他内容将它们转换为数字。或者,为什么不将数字存储为数字