发现在postgresql中,select 1223/60;得出的结果竟然是个整数(20),会自动将小数部分去掉。
想问大家下,有什么方法可将小数保留两位?得出结果为20.38
想问大家下,有什么方法可将小数保留两位?得出结果为20.38
解决方案 »
- 紧急求援啊!mysql字符集编码问题!!!!!!
- 请教如何修改配置文件my.ini
- mysql user表localhost改错了,无法登录了,怎么办?
- 行列互换,练手了(mysql)
- 求一条SQL查询语句?急急急!100分
- select * from `table` where `id` in (3,2,1,5) 列出的记录能不能按3,2,15排序?谢谢
- 我的mysql数据库怎么突然起动不了了?
- java连mysql不用输入用户名和密码的吗????
- 存储过程语法问题
- 求助!25日这一天的身份证为key,追溯到前一周该身份证关联的合作方去重个数。
- mysql语句问题!
- 用Update更新满足Select嵌套语句的数据
?column?
---------------------
20.3833333333333333
(1 row)
csdn=#
round
-------
20.38
(1 row)
csdn=#
得出的结果20.38,想分别截取小数点的前后的数值,保留到 DECLARE val int4[];
怎么写?
SUBSTR(CAST(ROUND(1223.00/60.00,2) AS VARCHAR(10)),1,strpos(CAST(ROUND(1223.00/60.00,2) AS VARCHAR(10)),'.')-1),
SUBSTR(CAST(ROUND(1223.00/60.00,2) AS VARCHAR(10)),strpos(CAST(ROUND(1223.00/60.00,2) AS VARCHAR(10)),'.')+1,2),
a | b
----+----
20 | 38
(1 row)
RETURNS int4 AS
$BODY$
DECLARE iRes INT4;
DECLARE var varchar;
DECLARE bg varchar;
DECLARE eg varchar;
DECLARE ag varchar;
BEGIN
var := round(1223.0/60,2)::varchar;
bg := '2010-05-25 9:53';
eg := '2010-05-25 12:10';
raise notice '----------bg=% eg=%',bg,eg;
--ag:= age('2010-05-25 9:53', timestamp '2010-05-25 12:53')::varchar;
ag:= age(bg, timestamp eg)::varchar; --为何用varchar变量代替语句就不执行了???
raise notice '----------ag=%',ag;
if substr(ag,1,1)::varchar='-' then
raise notice '-';
end if; ires := 99999;
RETURN ires;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION proc_temp_playbill() OWNER TO mposi;select * from proc_temp_playbill();