当前位置: 首页 > news >正文

[Oracle] ROUND()函数

ROUND() 是Oracle 中常用的数值处理函数,用于对数值进行四舍五入操作

ROUND()函数可以对数值和小数点后指定位数进行精确的四舍五入处理

语法格式

ROUND(number, decimal_places)

参数说明

number:要四舍五入的数字
decimal_places:指定要保留的小数位数(可选)
正数:表示小数位数
负数:表示整数位数
省略:默认为0 (四舍五入到整数)

示例1

-- 四舍五入到整数(默认)
SELECT ROUND(123.456) FROM dual;  -- 123
SELECT ROUND(123.556) FROM dual;  -- 124-- 保留1位小数
SELECT ROUND(123.4567, 1) FROM dual;  -- 123.5-- 保留2位小数
SELECT ROUND(123.4567, 2) FROM dual;  -- 123.46-- 结果: 3.33333333333333, 3.33
SELECT 10/3, ROUND(10/3, 2) FROM dual;-- 保留3位小数
SELECT ROUND(123.4567, 3) FROM dual;  -- 123.457-- 四舍五入到十位(-1表示十位)
SELECT ROUND(123.456, -1) FROM dual;  -- 120-- 四舍五入到百位(-2表示百位)
SELECT ROUND(123.456, -2) FROM dual;  -- 100-- 四舍五入到千位
SELECT ROUND(1255, -3) FROM dual;  -- 1000
SELECT ROUND(1555, -3) FROM dual;  -- 2000

示例2

SELECT ROUND(NULL, 2) FROM dual;  -- NULL

提示Tips:ROUND()函数的输入值为NULL,其输出值也为NULL

实际应用场景

-- 计算平均工资并四舍五入到整数
SELECT department_id, ROUND(AVG(salary)) AS avg_salary
FROM employees
GROUP BY department_id;-- 计算产品折扣价格(保留2位小数)
SELECT product_name, price,ROUND(price * 0.9, 2) AS discounted_price
FROM products;-- 报表中的金额格式化
SELECT order_id,ROUND(order_total, 2) AS rounded_total,TO_CHAR(ROUND(order_total, 2), '$999,999.99') AS formatted_total
FROM orders;

补充扩展知识:ROUND()函数也能够进行日期处理

ROUND(date, format)

参数说明
date:要四舍五入的日期
format:指定四舍五入的日期部分(可选)
'YEAR' 或 'YYYY' - 四舍五入到年
'MONTH' 或 'MM' - 四舍五入到月
'DAY' 或 'DD' - 四舍五入到日
'HH24', 'HH12', 'MI' - 四舍五入到小时或分钟

示例

-- 四舍五入到年
-- 如果月份 ≥7 则进到下年,否则保持本年
SELECT ROUND(TO_DATE('2025-08-06', 'YYYY-MM-DD'), 'YEAR') FROM dual;  -- 2026/1/1
SELECT ROUND(TO_DATE('2025-06-06', 'YYYY-MM-DD'), 'YEAR') FROM dual;  -- 2025/1/1-- 四舍五入到月
-- 如果日期 ≥16 则进到下月,否则保持本月
SELECT ROUND(TO_DATE('2025-08-06', 'YYYY-MM-DD'), 'MONTH') FROM dual;  -- 2025/8/1
SELECT ROUND(TO_DATE('2025-08-16', 'YYYY-MM-DD'), 'MONTH') FROM dual;  -- 2025/9/1-- 四舍五入到日(默认)
-- 如果时间 ≥12:00 则进到次日,否则保持当日
SELECT ROUND(SYSDATE) FROM dual;  -- 2025/8/6

实际应用场景

-- 计算员工入职周年(四舍五入到年)
SELECT employee_id, hire_date,ROUND(hire_date, 'YEAR') AS hire_anniversary
FROM employees;-- 生成季度报告(四舍五入到季度)
SELECT report_id,report_date,ROUND(report_date, 'Q') AS quarter_start
FROM reports;-- 计算月结日(四舍五入到月)
SELECT account_id,transaction_date,ROUND(transaction_date, 'MONTH') AS month_end
FROM transactions;
http://www.dtcms.com/a/318592.html

相关文章:

  • 软件架构:系统结构的顶层设计与战略约束
  • 【前端】Vite中import.meta功能详解
  • 【多模态微调】【从0开始】Qwen2-VL + llamafactory
  • 小杰python高级(one day)——numpy库
  • 应急响应-windows篇
  • Spring选择哪种方式代理?
  • 12、Docker Compose 安装 Redis
  • CGAL Kernel 和 Traits 类深度解析:从官方教程到实践应用
  • 疯狂星期四文案网第30天运营日记
  • 从Token到序列:阿里GSPO算法如何让大模型训练更稳、更强?
  • CubeFS存储(一)
  • 16-DS18B20-±0.5℃精度-12bitADC--55°C ~ +125°C
  • ubuntu server 工业环境部署手册[2025-08-06]
  • ⭐CVPR 文本到 3D 场景生成新突破:Prometheus 框架解析
  • http请求结构体解析
  • 【C++】二叉树进阶
  • 人工智能大数据模型驱动企业创新
  • 商用密码应用安全性评估法律法规的重要性及演变过程
  • 力扣-15.三数之和
  • 五、Istio管理网格外部服务
  • 快速准确的千兆像素病理图像分类,采用分层蒸馏多实例学习(每日一文)
  • ssm复习
  • 【RabbitMQ】高级特性—死信队列详解
  • 560. 和为 K 的子数组 - 前缀和思想
  • MATLAB下载教程MATLAB R2025a 保姆级安装步骤(附安装包)
  • 数据结构——双向链表及makefile
  • c++ 中 原子锁、互斥锁、自旋锁的区别和详细用法
  • 大模型 + 垂直场景:搜索 / 推荐 / 营销 / 客服领域开发
  • 【Redis】Linux部署redis 7集群部署三主三从、ACL新建用户及密码(图文教程)
  • ​ubuntu22.04系统入门 (四)linux入门命令 权限管理、ACL权限、管道与重定向