开发者社区 > 数据库 > 数据仓库 > 正文

云数据仓库ADBadb里round 的语法和mysql不一样是吗?

云数据仓库ADBadb里round 的语法和mysql不一样是吗?1216063.81944444525 这串数字我用 round(xx,0) 来提取,给我的结果是 1216064.00000000000,小数点后面的数字去不掉的么?

展开
收起
青城山下庄文杰 2023-10-16 20:56:32 158 0
4 条回答
写回答
取消 提交回答
  • 是的,云数据仓库ADB Adb中round函数的语法和MySQL不一样。在ADB中,使用round函数进行四舍五入时,需要指定保留的小数位数。例如,如果您想将数字1216063.81944444525四舍五入到小数点后两位,可以使用以下语法:

    round(1216063.81944444525, 2)
    

    这将返回结果1216063.82。请注意,ADB中的round函数默认使用标准SQL的舍入模式,即四舍五入到最接近的整数。因此,如果您想要保留小数点后的数字,请确保指定正确的小数位数。

    2023-10-31 23:36:06
    赞同 展开评论 打赏
  • 可以参考这个文档:https://help.aliyun.com/zh/analyticdb-for-mysql/developer-reference/numeric-functions?spm=a2c4g.11186623.0.i17#section-qve-w3z-483 此回答整理自钉群“云数据仓库ADB-开发者群”

    2023-10-17 19:27:17
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,DataWorks中的round函数和MySQL的round函数语法是不一样的。在DataWorks中,round函数的语法如下:
    round(x, d),其中x是需要处理的数,d是指保留几位小数。
    如果您想将1216063.81944444525四舍五入到整数,可以使用以下代码:
    round(1216063.81944444525, 0)
    这将返回1216064,因为小数点后的数字被四舍五入到0。
    如果您想将1216063.81944444525四舍五入到两位小数,可以使用以下代码:
    round(1216063.81944444525, 2)
    这将返回1216063.82,因为小数点后的数字被四舍五入到2位。

    2023-10-17 17:01:24
    赞同 展开评论 打赏
  • 是的,云数据仓库ADB的round函数语法和MySQL有所不同。在云数据仓库ADB中,round函数的语法为round(number,places),其中number是要四舍五入的数字,places是要保留的小数位数。例如,如果您想要将1216063.81944444525四舍五入到整数,可以使用round(1216063.81944444525,0)。
    另外,您提到的小数点后面的数字去不掉的问题,是因为在云数据仓库ADB中,round函数默认四舍五入的精度为6位。如果您希望保留更多的小数位数,可以将places参数设置为更大的值。例如,如果您希望保留两位小数,可以使用round(1216063.81944444525,2)。

    2023-10-16 21:41:27
    赞同 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像