trunc函数可以用于日期和数字使用。
1、日期的使用
如果我们想取得某月的第一天可以通过拼接得到,如下:
SELECT SYSDATE, TO_DATE( TO_CHAR(SYSDATE,'YYYY-MM') ||'-1','YYYY-MM-DD') FROM DUAL;--得到当前月份的第一天
也可以直接使用trunc函数,例:
SELECT '2020-11-5 15:10:06',
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'yyyy') "当年第一天" ,
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'mm') "当月第一天",
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'q') "当季度第一天",
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'D') "本星期第一天" ,--周日为第一天
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'hh') "小时" ,
TRUNC(to_date('2020-11-5 15:10:06', 'yyyy-mm-dd hh24:mi:ss'), 'mi') "分钟"
--无法到秒
FROM DUAL;
2、数字的使用
该函数用于数字,和round函数很接近,用以下例子展示2个函数之间的区别:
SELECT TRUNC(2.75), --整数部分
ROUND(2.75), --四舍五入后整数部分
TRUNC(2.756, 2), --截取2位小数
ROUND(2.756, 2) --四舍五入后保留2位小数
FROM DUAL;