Saturday, September 30, 2006

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

Tuesday, September 12, 2006

The first Blog!

This is the first Blog!