MySQL中两列的乘法 [英] Multiplication of two column in MySQL

查看:1529
本文介绍了MySQL中两列的乘法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取列fee与列duration之间的乘法结果,但是当我执行Select duration * fee时,我得到0

I want to get the result of the multiplication between column fee and column duration, but when I do Select duration * fee I get 0!

此外,每一列*费用都会给我0 ...

Also, every column * fee gives me 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$$*

推荐答案

为了实现所需的功能,您需要将字符串列转换为数字.

In order to achieve what you want, you need to convert string columns into number.

尝试一下:

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

顺便说一句,您要为服务器添加额外的工作,以便在将它们相乘之前先转换这些值.为什么不将其存储为DECIMALDouble?

BTW, you are adding extra work for the server to convert the values first before multiplying them. Why not store the as DECIMAL or Double?

这篇关于MySQL中两列的乘法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆