Oracle Trunc()函数
Oracle提供的函数Trunc()有两种类型:
- Trunc(for Number[,m])
Trunc(for Number)函数返回截取后的数值,其功能与Round函数类似,只是该函数做四舍五入处理,而是全部截去。
默认省略参数m,截取全部小数点部分,如果m为负数,截取小数点左边第m位。
SQL> SELECT TRUNC(123.45) FROM DUAL;
TRUNC(123.45)
-------------
123
SQL> SELECT TRUNC(123.45,1) FROM DUAL;
TRUNC(123.45,1)
---------------
123.4
SQL> SELECT TRUNC(123.45,3) FROM DUAL;
TRUNC(123.45,3)
---------------
123.45
SQL> SELECT TRUNC(123.45,-1) FROM DUAL;
TRUNC(123.45,-1)
----------------
120
SQL> SELECT TRUNC(123.45,-4) FROM DUAL;
TRUNC(123.45,-4)
----------------
0
- Trunc(for Date[,fmt])
该函数返回截取后的日期格式,省略fmt,截取最近的日期。
fmt格式
- Y、YY、YYY、YYYY、YEAR 年(返回四位数字的年)
- MONTH、MON,MM 月
- D、DD、DDD、DAY、DY 日
- HH、HH12、HH24 时
- MI 分
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'Y'),'YYYY-MM-DD HH24:MI') FROM DUAL;
YEAR
----------------
2006-01-01 00:00
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'YEAR'),'YYYY-MM-DD HH24:MI') FROM DUAL;
YEAR
----------------
2006-01-01 00:00
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'MONTH'),'YYYY-MM-DD HH24:MI') FROM DUAL;
MONTH
----------------
2006-07-01 00:00
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'DD'),'YYYY-MM-DD HH24:MI') FROM DUAL;
DAY
----------------
2006-07-19 00:00
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'HH'),'YYYY-MM-DD HH24:MI') FROM DUAL;
HOUR
----------------
2006-07-19 23:00
SQL> SELECT TO_CHAR(TRUNC(SYSDATE,'MI'),'YYYY-MM-DD HH24:MI') FROM DUAL;
MINUTE
----------------
2006-07-19 23:22