函数说明
用法有两种:
trunc(number) 截断数字
trunc(date) 截断日期。
截断数字
格式:trunc(n1,n2),n1表示被截断的数字,n2表示要截断到哪一位。n2可以是负数,表示截断小数点前。
注意,trunc截断不是四舍五入。
示例:
select trunc(12.34) from dual;
结果
12
select trunc(12.39,1) from dual;
结果
12.1
select trunc(12.39,-1) from dual;
结果
10
截断日期
格式:trunc(date[,fmt])
其中:date 一个日期值
fmt 日期格式,从指定的元素格式截断。
常用oracle的日期格式包含:
yyyy 四位年份
mm 两位月份
dd 两位日期,表示当月的第几天
hh 十二小时制
hh24 二十四小时制
mi 分钟
ss 秒
示例:
当前日期:
select sysdate from dual;
结果
2024/4/12 14:57:03
select trunc(sysdate) from dual;
结果
2024/4/12
等同于
select trunc(sysdate,'dd') from dual;
当年第一天:
select trunc(sysdate,'yyyy') from dual;
结果
2024/1/1
当月第一天:
select trunc(sysdate, 'mm') from dual;
结果
2024/4/1
截取到周,当前周的第一天
select trunc(sysdate,'day') from dual;
结果
2024/4/7
下个星期一
select trunc(next_day(sysdate,'monday')) from dual;
结果
2024/4/15
备注:trunc()函数没有秒的精确。