我想获得列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$$*
答案 0 :(得分:3)
为了达到你想要的效果,你需要将字符串列转换为数字。
试试这个:
SELECT CAST(`duration` AS DECIMAL(10,4)) * CAST(`fee` AS DECIMAL(10,4))
FROM `simvoip`
顺便说一下,您正在为服务器添加额外的工作,以便在乘以它们之前先转换它们。为什么不存储为DECIMAL
或Double
?
答案 1 :(得分:1)
您无法将文本值相乘。您需要使用CAST(fee as integer)
或其他内容将它们转换为数字。或者,为什么不将数字存储为数字?