[Oracle] TRUNC()函数

TRUNC() 是 Oracle 中一个多功能函数,主要用于对数值、日期进行截断操作

1.TRUNC()函数用于数值处理

语法格式

TRUNC(number, decimal_places)

参数说明

number:要截断的数值
decimal_places:保留的小数位数(可选),默认为0(截断所有小数部分)
  正数:指定小数位数
  负数:截断整数部分(将指定数字位左侧的数字变为0)

示例

-- 截断所有小数
SELECT TRUNC(123.4567) FROM dual;  -- 123

-- 保留2位小数
SELECT TRUNC(123.4567, 2) FROM dual;  -- 123.45

-- 截断整数部分(十位)
SELECT TRUNC(123.4567, -1) FROM dual;  -- 120

-- 截断整数部分(百位)
SELECT TRUNC(123.4567, -2) FROM dual;  -- 100

2.TRUNC()函数用于日期处理

语法格式

TRUNC(date, format)

参数说明

date:要截断的日期值
format:截断的精度单位(可选),常用值包括:
  'YEAR' 或 'YYYY' 或 'YY': 截断到当年第一天
  'MONTH' 或 'MM' 或 'MON': 截断到当月第一天
  'DD' 或 'DAY' 或 'D': 截断到当天(去掉时分秒)
  'HH' 或 'HH12' 或 'HH24': 截断到当前小时
  'MI': 截断到当前分钟
  默认为'DD'(截断到当天)

示例

-- 当前日期:2025/8/9 下午 02:49:30
SELECT SYSDATE FROM dual;

-- 截断到当天(去掉时分秒)
SELECT TRUNC(SYSDATE) FROM dual;  -- 2025/8/9

-- 截断到当年第一天
SELECT TRUNC(SYSDATE, 'YEAR') FROM dual;  -- 2025/1/1

-- 截断到当月第一天
SELECT TRUNC(SYSDATE, 'MM') FROM dual;  -- 2025/8/1

-- 截取到当天
SELECT TRUNC(SYSDATE, 'DD') FROM dual;  -- 2025/8/9

-- 截断到当前小时
SELECT TRUNC(SYSDATE, 'HH24') FROM dual;  -- 2025/8/9 下午 02:00:00

提示Tips

① 与ROUND()函数不同,TRUNC()只是简单截断,不进行四舍五入

② TRUNC()函数不会改变原始数据类型,数值处理后仍是数值,日期处理后仍是日期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值