1.格式:trunc(date,fmt)
-------------> date:为必要参数,是输入的一个日期值
-------------> fmt: 参数可忽略,指定精确哪个时间,忽略则精确到当天的零时零分零秒(时间只能精确到分钟,无法精确到秒)
1) trunc()的几种常用方法
select trunc(sysdate,'yyyy') /*今年的第一天*/ from dual;
select trunc(sysdate,'mm') /*当月的第一天*/ from dual;
select trunc(sysdate,'dd') /*当前的年月日*/ from dual;
select trunc(sysdate,'d') /*当周的第一天*/ from dual;
select trunc(sysdate,'iw') /*当周的第二天*/ from dual;
select trunc(sysdate,'q') /*当前季度的第一天*/ from dual;
select trunc(sysdate,'hh') /*当前的时间,精确到小时*/ from dual;
l例1:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(trunc(sysdate),'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY TO_CHAR(TRUNC(SYSDA
--------------------------------------------------------------------------------
2018-03-13 12:24:11 2018-03-13 00:00:00
//sysdate的零时零分零秒相当于trunc(sysdate)
和
select trunc(sysdate,'dd') /*当前的年月日*/ from dual; 一样
TRUNC(SYSDATE,'DD')
-------------------
2019-03-13 00:00:00
例2:
select trunc(sysdate-1) /*昨天*/ from dual;
select trunc(sysdate+1) /*今天*/ from dual;
select trunc(sysdate-to_date('20140302 12:32:32','yyyy-mm-dd hh24:mi:ss')) || '天' /*相隔的天数*/ from dual;
TRUNC(SYSDATE-TO_DATE('2014030212:32:32','
------------------------------------------
1837天
2.格式:trunc(number,decimals)
-------------> number:待截取的数值
-------------> decimals:参数可忽略,指明需保留的小数点后的位数,忽略则截去所有的小数部分
select trunc(123.212) from dual; 123
select trunc(123.212,2) from dual; 123.21
select trunc(123.212,-2) from dual; 100