postgreSql中round函数的使用方法?

新手上路,请多包涵

select round('1.5');
结果:2

select round('100.5');
结果:100

第二个round居然没有进行四舍五入,这个是什么原因?

还有sum的返回值类型是什么?是字符串吗?

阅读 4.8k
2 个回答

1、手头只有 PgSql 9.4,测了一下结果跟预期一样是 101,不知道你的执行环境是什么。


2、取决于传入列的类型:

传入列如果是 smallintint,则返回值是 bigint
传入列如果是 bigint,则返回值是 numeric
传入列如果是 realdouble precisionnumericintervalmoney 等,则返回值与之保持相同类型。

https://www.postgresql.org/do...

挺有意思的

你传递的都是字符串,postgres 解析这些 '1.5' 成了 double precision,解析 '100.5' 成了 numeric;
postgres 中有两个 round 函数,行为不太一样:
round(double precision)
round(numeric)

参考:数学函数和操作符

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题