我知道这个问题依赖于供应商,但如果像SUM这样的聚合函数在小类型上操作,我是否应该担心?-- CREATE TABLE income (dt DATETIME, department INT, amount INT);
SELECT SUM(amount) FROM incomeWHERE dt BETWEEN
我们正在将一个为MySQL编写的程序转换为使用SQLite。有些代码会自动适应我们从数据库中返回的字段类型。SQLite具有“有趣”的属性,即呈现SQL SUM(...)函数作为ftWideString (可能是为了处理可能的溢出)。我们需要这些字段是整型或浮点型字段。我尝试了一下,这似乎明显迫使SQL为您提供所需的类型:
SELECT cast(sum(units) as int) FROM dr
所以我在前面写了这个(用php),但是每次我尝试回显$test时,我只能得到资源id为5的结果。$dave= mysql_query("SELECT order_date, no_of_items, shipping_charge, SUM(total_order_amount) as testFROM `orders` WHERE DATE(`order_date`) = DATE(NOW()) GROUP BY DATE(`order_date`)") or die(mysql_error
我想知道mysql类型转换的规则是什么。例如:
如果foo列是一个整数,那么select foo/2 from table似乎会产生一个小数。如果foo是浮点型,则select sum(foo) from table将sum(foo)列返回为双精度型。如果我是一个整数,select i*i from table会给出一个大整数。当使用普通运算符(如+-/* )或聚合(如sum/avg )时,这里的类型转换
如果我在MySQL中添加一个这样的表: `id` int(11) NOT NULL AUTO_INCREMENT,);INSERT INTO `test` (`value`) VALUES ('123.45');SELECT SUM( value )为什么它返回123.449996948242而不是123