trunc函数的使用

场景

oracle dbms_jobs中见到 trunc(sysdate)+1+1/(24) ,瞬间一脸懵。 是该学习的时候了。

trunc(sysdate)+1+1/(24) 是凌晨1点

用法

用法主要有2种,对date使用,对number使用。

对date使用

TRUNC函数为指定元素而截去的日期值。
语法为:

TRUNC(date[,fmt]

例子:

trunc(sysdate,'yyyy') --返回当年第一天
trunc(sysdate,'mm') --返回当月第一天
trunc(sysdate,'d') --返回当前星期的第一天
trunc(sysdate,'dd')--返回当前年月日

对number使用

与round()函数类似,只不过不进行四舍五入,而是直接截取。
语法:

TRUNC(number[,decimals])

例子:

trunc(89.9852)=89.98   --  截去 小数点右边n位之后的数据
trunc(89.985)=89   -- 默认截去 小数点右边
trunc(89.985-1)=80  -- 负数表示,截去小数点左边n位之前的数据

–Oracle trunc()函数的用法
/日期******/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, ‘mm’) from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,‘yy’) from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,‘dd’) from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,‘yyyy’) from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,‘d’) from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, ‘hh’) from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, ‘mi’) from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确

9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120

date常见用法

日期减一天

select trunc(sysdate-1) from dual;

减一秒

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

number常见用法

select trunc(123.456) from dual; – 123 取整


版权声明:本文为enthan809882原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。