1

fee列と列の乗算の結果を取得したいのですが、取得durationするSelect duration * fee0

また、すべての列*料金は私に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$$*
4

2 に答える 2

3

目的を達成するには、文字列列を数値に変換する必要があります。

これを試して:

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

ところで、あなたはそれらを掛ける前に最初に値を変換するためにサーバーのために余分な仕事を追加しています。DECIMALasまたはを保存してみませんかDouble

于 2012-08-06T08:53:07.347 に答える
1

テキスト値を乗算することはできません。を使用して、または何でも、それらを数値に変換する必要がありCAST(fee as integer)ます。あるいは、数値を数値として保存しませんか?

于 2012-08-06T08:51:58.190 に答える