TRUNC函数,该函数的意思就是单词TRUNCATE的意思“截取”,分为截取日期类型和截取数字类型。分别介绍如下:
1,截取数字类型,TRUNC(for number) 。
TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。其具体的语法格式如下:TRUNC(number[,decimals])
该函数的用法中:number 待做截取处理的数值,decimals 指明需保留小数点后面的位数。 可选项,忽略它则截去所有的小数部分。举例如下,
TRUNC(56.789,2)= 56.78 截取小数点后2位小数;
TRUNC(56.789)=56 截取整数部分,默认截取0位小数;
TRUNC(56.789,-1)=50 心爱那个小数点之前截取一位,把个位截取变成零,结果变成了50。
可以看出,TRUNC函数的可选参数可以取到负数,代表向前取到哪位。上面的例子中参数值为-1,取到的结果是50,即取到十位。
2,截取日期类型,TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。其具体的语法格式如下:TRUNC(date[,fmt])
该函数的用法中:date 一个日期值,fmt 日期格式 ,该日期将由指定的元素格式 所截去。忽略它则由最近的日期 截去。 举例如下:
TRUNC(TO_DATE('2010-10-20 08:00 pm','yyyy-mm-dd hh:mi am') ) ='2010-10-20 12:00:00 am' ;
TRUNC(TO_DATE('2010-10-20 08:37 pm','yyyy-mm-dd hh:mi am') ,'hh') ='2010-10-20 08:00:00 am' ;
trunc(sysdate,'yyyy') --返回当年第一天;
trunc(sysdate,'mm') --返回当月第一天;
trunc(sysdate,'d') --返回当前星期的第一天;
trunc(sysdate,'dd') --返回当前年月日;
TRUNC函数的具体用法和取到的值我现在也不慎清除,主要是因为日期的样式非常复杂,在进行格式转换和截取的过程中是否有特殊情况呢?如果你有清楚的认识请回复一下,我也会继续学习和进行完善。