oracle数据库trunc函数用法详解

作者:袖梨 2022-06-29


trunc函数作用是截取日期,能准确到整点。截取后得到的仍为date数据类型。

一、基本用法
1、默认截取到日,例如:

select trunc(sysdate) from dual;

结果:2015-06-24 00:00:00

2、截取年:

select trunc(sysdate,'YYYY') from dual;

结果:2015-01-01 00:00:00

3、截取月:

select trunc(sysdate,'MM') from dual;

结果:2015-06-01 00:00:00

4、截取日:

select trunc(sysdate,'DD') from dual;

结果:2015-06-24 00:00:00

5、截取小时:

select trunc(sysdate,'HH24') from dual;

结果:2015-06-24 10:00:00

6、截取分钟:

select trunc(sysdate,'MI') from dual;

结果:2015-06-24 10:35:00

7、截取秒会报错:

select trunc(sysdate,'SS') from dual;

直接使用sysdate。

二、加1的使用

1、加1表示加上一天:

select trunc(sysdate)+1 from dual;

结果:2015-06-25 00:00:00

2、加1小时:

select trunc(sysdate)+1/24 from dual;

结果:2015-06-24 01:00:00

3、加1分钟:

select trunc(sysdate)+1/24/60 from dual;

结果:2015-06-24 00:01:00

4、加1秒钟:

select trunc(sysdate)+1/24/60/60 from dual;

结果:2015-06-24 00:00:01

5、加10分钟:

select trunc(sysdate)+1/24/60*10 from dual;
select trunc(sysdate)+10/(24*60) from dual;

补充:

【返回】:日期
select sysdate from dual --当时日期
select trunc(sysdate) from dual
select trunc(sysdate ,'DD') from dual --今天日期
select trunc(sysdate,'d')+7 from dual --本周星期日
select trunc(sysdate,'dy')+7 from dual  --本周星期日
select trunc(sysdate,'day')+7 from dual --本周星期日
select trunc(sysdate,'q') from dual--本季开始日期
select trunc(sysdate,'month') from dual --本月开始日期
select trunc(sysdate ,'mm') from dual --本月开始日期
select trunc(sysdate,'year') from dual  --本年开始日期
select trunc(sysdate ,'yyyy') from dual --本年开始日期
select trunc(sysdate ,'HH24') from dual --本小时开始时间
select trunc(sysdate ,'MI') from dual --本分钟开始时间
select trunc(sysdate ,'CC') from dual --本世纪开始时间
select trunc(LAST_DAY(sysdate),'dd') from dual --本月最后一天
 
3、round(10.2356,2)函数可以对数字按指定保留小数位数四舍五入,这个函数还可以对日期四舍五入
select round(sysdate,'yyyy') from dual 四舍五入到年
select round(sysdate,'mm') from dual 四舍五入到月
select round(sysdate,'dd') from dual 四舍五入到日
select round(sysdate,'hh') from dual 四舍五入到小时
select round(sysdate,'mi') from dual 四舍五入到分钟
 
4、TRUNC还可以对number类型使用,
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80

相关文章

精彩推荐