mysql中sum函数使用float类型出现小数点解决办法

方法一:最好的办法是将float字段改为decimal(16,6)。具体方法:可设置一个临时字段,结合MySQL的关键字binary进行准确复制等。

方法二:使用binary关键字解决。具体操作为“select sum(binary 字段名(float类型))”
    BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串
例子:
    "select sum(a.number*binary(b.price)) as total
        from ler_card as a
        left join ler_items as b on a.itemId=b.itemId
        where user_id=1"

php格式化数字:位数不足前面加0补足

$month=9;
$month= sprintf("%02d", $month);
echo $month;//输出09
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比

%08.2f 解释:
%开始符
0是 "填空字元" 表示,如果长度不足时就用0来填满。
8格式化后总长度
2f小数位长度,即2位
第3行值为"00123.10" 解释:
因为2f是(2位)+小数点符号(1位)+前面123(3位)=6位,总长度为8位,故前面用[填空字元]0表示,即00123.10
第4行值为"123.1000" 解释:
-号为反向操作,然后填空字元0添加在最后面了

MySql按日期查找

使用DATE_FORMAT方法

SELECT * FROM `ler_items` WHERE DATE_FORMAT(postTime,'%Y-%m')='2013-03'

注意:日期一定要用'',否则没有效果