Oracle認證:OracleTRUNC函數詳解

  C 函數

Oracle認證:OracleTRUNC函數詳解

Oracle TRUNC函數可以截取數字和日期類型:

  C截取數字

TRUNC(number)函數返回n1截取到n2位小數。如果省略n2時,則n1截取到0位置(即截取所有小數位)。如果n2爲負數時,表示截取小數點左邊的n2位,被截取部分記爲0.

2.1語法

其語法格式如下:

TRUNC(n1 [, n2 ])

其中:n1爲待截取的數值;n2爲需要保留的小數位,是一個選可項。

2.2 Examples

2.2.1截取小數點後1位

SQL> select trunc(17.97, 1) from dual;

TRUNC(17.97,1)

--------------

17.9

2.2.2截取小數點後0位

相當於省略n2

SQL> select trunc(17.97, 0) from dual;

TRUNC(17.97,0)

--------------

17

2.2.3缺省n2

相當於截取0位

SQL> select trunc(17.97) from dual;

TRUNC(17.97)

------------

17

2.3.4截取小數點前1位

SQL> select trunc(17.97, -1) from dual;

TRUNC(17.97,-1)

---------------

10

總結:當n2位正數時,截取小數點有右邊的位置。當N2小數點位負數時,則截取小數點左邊的位置,被截取部分記爲0.

C截取日期

TRUNC(date)返回以指定格式fmt截取一部分的日期格值,該函數對NLS_CALENDAR會話參數是不敏感的`。它按照公曆規則運作。返回值始終是日期類型,即使你指定不同datetime數據類型的日期。如果省略fmt,則日期返回最近一天。

3.1語法

其語法格式如下:

TRUNC(date [, fmt ])

其中:date:爲輸入的日期值,是必輸項;fmt:以指定格式來截取輸入的日期值,是一個可選項。

TRUNC函數可以使用的格式模型如下:

vciB0aGUgUk9VTkQgYW5kIFRSVU5DIERhdGUgRnVuY3Rpb25zIA==" width="100%"> Format Model

Rounding or Truncating Unit

CC

SCC

One greater than the first two digits of a four-digit year

SYYYY

YYYY

YEAR

SYEAR

YYY

YY

Y

Year (rounds up on July 1)

IYYY

IY

IY

I

ISO Year

Q

Quarter (rounds up on the sixteenth day of the second month of the quarter)

MONTH

MON

MM

RM

Month (rounds up on the sixteenth day)

WW

Same day of the week as the first day of the year

IW

Same day of the week as the first day of the ISO year

W

Same day of the week as the first day of the month

DDD

DD

J

Day

DAY

DY

D

Starting day of the week

HH

HH12

HH24

Hour

MI

Minute

默認爲DD格式模型,返回四合五入的日期或截取到這天午夜的時間(即,晚上12點)。

3.2 Examples

3.2.1YEAR模型

向上截取到1月1日

SQL> select trunc(sysdate,'YEAR') from dual;

TRUNC(SYSDATE,'YEAR')

---------------------

2014/1/1

3.2.2省略模型

SQL> select trunc(sysdate) from dual;

TRUNC(SYSDATE)

--------------

2014/1/4

省略模型,相當於指定模型爲DD.

SQL> select trunc(sysdate,'DD') from dual;

TRUNC(SYSDATE,'DD')

-------------------

2014/1/4