當前位置:才華齋>IT認證>Oracle認證>

Oracle認證:OracleTRUNC函式詳解

Oracle認證 閱讀(2.03W)

  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