在Oracle数据库中trunc的使用
TRUNC():类似截取函数,按指定的格式截取输入的数据。
--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()函数没有秒的精确
注意:进行时间处理时需要,不要对时间字段进行处理,因为会影响查询效率,非常慢
例:
每提取一条记录都要对时间字段进行函数处理才能确定是否合适(高消耗)
SELECT COUNT(1) FROM A_BASIC_CS_RADIO_H WHERE TRUNC(COLLECTTIME) = TRUNC(SYSDATE) - 1
一般耗时4-5秒。
直接可以判断是否合适(低消耗)
SELECT COUNT(1) FROM A_BASIC_CS_RADIO_H
WHERE COLLECTTIME>=trunc(sysdate-1) AND COLLECTTIME <trunc(sysdate)
一般耗时零点几秒。
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
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
详细可以查看https://www.cnblogs.com/gengaixue/archive/2012/11/21/2781037.html