写点什么

YashanDB ROUND 函数

作者:YashanDB
  • 2025-07-28
    广东
  • 本文字数:1138 字

    阅读完需:约 4 分钟


ROUND 函数对 expr 的值按照指定格式四舍五入一个日期值,返回一个 DATE 类型的日期;或按照 round_number 指定的位数进行四舍五入,返回类型为:

当用于四舍五入日期值时,expr 的值必须为 DATE、TIMESTAMP 类型。

当用于四舍五入数值时,expr 的值必须为数值型,或可以转换为 NUMBER 类型的字符型(转换失败返回 Invalid number 错误)。当 expr 的值为 0 时,函数返回 0。

对于其他类型,函数返回类型转换错误。

当 expr 的值为 NULL 时,函数返回 NULL。

fmt

指定日期值的截断格式,规则如下:

当不指定 fmt 时,默认为'DD'。

对于类型 IW、W、 WW、Start day of the week,当输入值的小时数大于等于 12 时,进位可跨天、跨月、跨年。

round_number

指定截取的小数位数,须为数值型数据,或可转换为 NUMBER 类型的其他类型数据。

round_number 为与 expr 相同的通用表达式,当 round_number 的值为 NULL 时,函数返回 NULL。

当 round_number 的值为正数,且该值大于 expr 的小数位数时,函数返回 expr 的原值。

当 round_number 的值为负数时,表示向小数点左边截取,例如"ROUND(123.456,-2)",返回的是 123 四舍五入至小数点左侧第 2 位的数字,即 100。此时当 round_number 的绝对值大于小数点左边的整数位数时,函数返回 0,例如"ROUND(123.456,-4)=0"。

示例

SELECT ROUND(SYSDATE-10000) res FROM DUAL;RES             -------------------------------- 1995-02-05 
SELECT ROUND(SYSDATE-10000) res FROM DUAL;RES -------------------------------- 1995-02-05
SELECT numbera,numberb,numberc,numberd,numbere,numberf,numberg FROM numbers_nobit; NUMBERA NUMBERB NUMBERC NUMBERD NUMBERE NUMBERF NUMBERG------------ ------- -------- --------------------- ----------- ----------- ----------- -5 55 5555 5555555555555555555 5.555E+000 5.556E+000 555 SELECT ROUND(numbere,numbera) round1,ROUND(numbere,numberb) round2,ROUND(numberf,15660) round3,ROUND(numbere,'17') round4,ROUND(numberf,-1) round5FROM numbers_nobit; ROUND1 ROUND2 ROUND3 ROUND4 ROUND5----------- ----------- ----------- ----------- ----------- 0 5.55499983 5.55555556 5.55499983 10 SELECT TYPEOF(ROUND(numbere,numbera)) type1,TYPEOF(ROUND(numbere,numberb)) type2,TYPEOF(ROUND(numberf,15660)) type3,TYPEOF(ROUND(numbere,'17')) type4,TYPEOF(ROUND(numberf,-1)) type5FROM numbers_nobit;TYPE1 TYPE2 TYPE3 TYPE4 TYPE5 -------- -------- --------- --------- --------number number number number number
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB ROUND函数_数据库_YashanDB_InfoQ写作社区